【发布时间】:2017-11-03 13:20:27
【问题描述】:
我在通过道具从 React“容器”中的 Store 获取 JSON 对象(信息)并将其传递到他的子组件(InfoPage)时遇到问题。 我也有 Action 和 Reducer 的方法,所有这些方法都没有错误。 有人可以帮我解决这个问题。 这是我来自“容器”的代码。 谢谢。
function mapStateToProps(state) {
return {
user: state.auth.user,
info: state.info,
ui: state.ui
};
}
function mapDispatchToProps(dispatch) {
return bindActionCreators(Object.assign({}, uiActions,
authActions, infoActions), dispatch);
}
class Info extends Component {
static propTypes = {
user: PropTypes.objectOf(PropTypes.any).isRequired,
ui: PropTypes.objectOf(PropTypes.any).isRequired,
info: PropTypes.objectOf(PropTypes.any).isRequired,
switchProfileMenu: PropTypes.func.isRequired,
logOut: PropTypes.func.isRequired,
};
constructor(props) {
super(props);
this.handleClickOption = this.handleClickOption.bind(this);
}
handleClickOption() {
return this.props;
}
render() {
const { user, logOut, info, ui: { showProfileMenu },
switchProfileMenu } = this.props;
return (
<div className={b()}>
<Header
user={user}
logOut={logOut}
switchMenu={switchProfileMenu}
showMenu={showProfileMenu}
/>
<div className="container">
<div className="content">
<div>
<InfoPage data={info} />
sadasd
</div>
</div>
</div>
<Footer />
</div>
);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
【问题讨论】:
-
嘿伙计!这就是你的所有代码吗?您的组件是否使用
connect高阶组件连接到商店?我这里没看到! -
几乎有一半的文件没有导入,是的,在容器底部有连接。 (导出默认连接(mapStateToProps, mapDispatchToProps)(Info);)
-
老兄,我看这里的代码没有任何问题!如果你的 reducer 创建了一个新对象并且你得到的 JSON 对象 (info) 有一些变化,那么一切都应该没问题!您如何调度操作以获取/更新信息 JSON 对象?
-
@Ematipico 我正在调度这样的动作:jsfiddle.net/vnam92/nvhf7e5d/1 你能帮助实现这一点吗.. 我需要在哪里以及如何调用这个方法来将 json 对象上传到容器的孩子中,按道具。
-
@Ematipico 也通知 webpack,组件的输入对象未定义...我有货...
标签: json reactjs redux react-router react-redux