yarn add react-redux
|- redux |- actions.js |- reducer.js |- store.js
actions.js
export const change_user_info = "changeUserInfo"export function ChangeUserInfo( data ){ return { type: change_user_info, data: data }}
reducer.js
import { change_user_info } from "./actions"let storeState = { userInfo: null}export default function Store( state = storeState, actions ){ switch( actions.type ){ case change_user_info: return { ...state, userInfo: actions.data } default: return state }}
store.js
import { createStore } from 'redux'import reducer from './reducer'const store = createStore(reducer)export default store
import { Provider } from "react-redux"import store from "./redux/index"ReactDOM.render( <Provider store={ store } > <App/> </Provider>, document.getElementById('root'));
// 在組件內(nèi) 引入import * as React from "react"import { connect } from "react-redux"import { changeUserInfo } from "@/redux/actions"class Hello extends React.Component{ // 使用方式 // this.props.userInfo // this.props.changeUserInfo( data ) ... // 省略}const mapStateToProps = ( state ) =>{ return { userInfo: state.userInfo }}const mapActionsToProps = ( dispatch )=>{ return { changeUserInfo: ( data )=>{ dispatch( changeUserInfo( data ) ) } }}export default connect( mapStateToProps, mapActionsToProps )( Hello )
作者:taoqun
地址:http://taoquns.com/paper/46
聯(lián)系客服