【发布时间】:2018-10-01 19:59:39
【问题描述】:
当我将商店从道具中的let store = createStore(myReducer); 传递到其他组件时,它会变得未定义。当我使用react-router-dom 时会发生这种情况,但没有它就可以了。
路线部分
路由在App组件中
<BrowserRouter>
<div>
<Route path={"/layout"} component={Home} />
<Route path={"/form"} component={UserForm} />
<Route exact path={"/"} component={this.layout} />
</div>
</BrowserRouter
布局方法
layout(){
return (
<Layout store={this.props.store} />
);
}
我正在像这样在应用组件中传递商店
const renderAll = () => {
console.log("inside render all" ,store);
ReactDOM.render(
<App store={store} />,
document.getElementById('root')
);
}
这家商店会像这样从布局组件到body组件
<Body ChangeName={this.handleChangeName} store = { this.store} s_key={this.state.inputkey} />
在正文组件中,我从在 componentWillMount() 的 node.js 服务器中运行的 api 中获取
fetch('/api/get/all',{
headers : {
'content-Type': 'application/json',
}
}).then((res)=>{
console.log(res);
return res.json();
}).then(users =>{
this.store.dispatch({
type :"FETCH_ALL",
data : users
})
this.setState({
user: users
})
// console.log(this.state.user);
});
map 函数出现错误
{this.store.getState().user.map(u => {
return <UserDiv name={u.name} age={u.age} location={u.location} gender={u.gender} job={u.job} />;
})}
错误
无法读取未定义的属性“地图”
奇怪的部分是当我在没有路线的情况下它会好起来的 提前谢谢
【问题讨论】:
-
最好使用 react-redux 库来处理。
标签: arrays node.js reactjs react-router-dom