一、目录结构
src|
store|
index.js
reducer.js
Home.js
二、Home.js中:
constructor(props){
super(props);
this.state = store.getState();
store.subscribe(this.changeStateStr.bind(this))
//监听是否有action提交,若有则触发括号中的函数
}
render () {
return (
<div>
<h1>数据:{this.state.str}</h1>
<button
onClick={this.changeStr.bind(this)}
>——————修改数据——————</button>
<button onClick={this.toNews.bind(this)}>新闻</button>
</div>
)
}
changeStr(){
let action ={
type:"change_str"
//提交说明,用于reducer.js中的switch来区分action
}
store.dispatch(action);
//提交action
}
changeStateStr(){
this.setState(store.getState())
//将this.state与store中的数据同步
}
三、reducer.js中
let dataState = {
str:"==这是仓库中的数据=="
}
export default (state=dataState,action)=>{
let newState = state;
switch(action.type){
case "change_str":
//当action.type为change_str
newState.str=11111;
return newState;
break;
default:
return state;
}
}