import React from 'react'; import ReactDOM from 'react-dom'; import TodoList from './TodoList'; import { Provider } from 'react-redux'; const App = ( <Provider> <TodoList /> </Provider> ) ReactDOM.render(App, document.getElementById('root'));
import React from 'react'; import ReactDOM from 'react-dom'; import TodoList from './TodoList'; import { Provider } from 'react-redux'; import store from './store'; const App = ( <Provider store={store}> <TodoList /> </Provider> ) ReactDOM.render(App, document.getElementById('root'));
import React, { Component } from 'react'; import { connect } from 'react-redux'; class TodoList extends Component{ render() { return ( <div> <div> <input value={this.props.inputValue} onChange = { this.props.changeInputValue}/> <button>提交</button> </div> <ul> <li>1</li> </ul> </div> ) } } /** * 這個意思是讓TodoList這個組件和store進行鏈接。因此connect方法是作鏈接。 * 要鏈接就有鏈接的方式,因此第一個參數mapStateToProps * 他的意思是TodoList與store作鏈接就有一個規則,規則在哪裏,規則在mapStateToProps裏面 */ //mapStateToProps,把store裏面的數據映射給這個組件,並變成組件的props. 而參數state就是指store裏面的數據。 const mapStateToProps = (state) => { return { inputValue: state.inputValue } } /*** * 我讓Todolist這個組件跟store作關聯,store裏面的數據會映射到props上面 * 同時若是我想對store的數據作修改,也能夠經過store的props來作修改 * mapDispatchToProps,dispatch,派發,把store的dispatch方法掛載到props上 * */ const mapDispatchToProps = (dispatch) => { return { changeInputValue(e){ const action = { type: 'change_input_value', value: e.target.value } dispatch(action); } } } export default connect(mapStateToProps, mapDispatchToProps)(TodoList);