【发布时间】:2018-10-03 12:35:28
【问题描述】:
您好,我在将道具传递给子组件时遇到了一些问题。 问题是,将全局状态作为道具发送到子组件可以正常工作,但我无法将本地道具发送到子组件。
我不知道为什么,但它返回 undefined。
const mapStateToProps =(state)=>{
return state.itemInfo
}
export class ItemInformationContainer extends React.Component{
componentWillUnmount(){
store.dispatch(hideItemInfo());
}
handleBackToList = (e)=>{
console.log('back please');
store.dispatch(hideItemInfo());
}
render(){
return(
<WrappedItemComponent backToList={this.handleBackToList} {...this.props}/>
)
}
}
export const ItemInformation =(props)=>{
console.log(props);
return(/*some codes*/
)
}
const WrappedItemComponent = connect(mapStateToProps)(ItemInformation);
在 ItemInformation 组件中,我使用了 console.log(props) 来检查展示组件是否正在从父组件获取 backToList 道具。
但结果是
{backToList: undefined, content: {…}, type: "country", status: "show", dispatch: ƒ} backToList: 未定义
backToList 未定义。
我真的需要这个道具。我如何解决它?
请忽略组件WillUnmount。如果 handleBackToList 可以正常工作,那么该生命周期方法将从代码中删除。
【问题讨论】:
-
@HardikModha 这很奇怪。我在我的代码中未定义.. 在你的代码中,我看到你在 backToList 中做警报。但是,我看不到任何警报
-
我还没有调用这个函数! :) 更新:现在它会显示警报!
-
看看代码有没有错误。尝试运行 jshint。
-
@kustkust 请提供stackoverflow.com/help/mcve,这样可以复制问题。我希望您的实际代码与您发布的不同。
标签: reactjs react-redux