【发布时间】:2019-03-17 17:26:57
【问题描述】:
我已经使用 Redux 和 React 工作了几个月。我通常总是毫无问题地使用 Chrome。 (实际上是无尽的错误:))。
当我开始在 Firefox 中进行测试时,我遇到了一个需要帮助的问题......想知道是否有完美的方法来处理这个问题......
问题 调用构造函数时,MapStateToProps 的 Redux Props 尚不可用,这意味着我无法在组件构造函数中构造组件状态。这些道具随后在渲染功能中迅速可用。在这个阶段,为时已晚,因为我无法在渲染函数中构造状态(可以以某种方式工作,但不是很好吗?)。
目前我正在使用 componentWillReceiveProps 并复制我的构造函数,但有一个例外
构造函数
constructor(props){
super(props);
//Loads of code named A
this.state = {state:A};
}
组件将接收道具功能
componentWillReceiveProps (){
//Loads of code named A
this.setState({state:A});
}
在这里覆盖我的状态可能存在问题,但对于我这里的确切情况,它只显示数据,没有发生 UI 更改...这似乎不是正确的方法...
我读了这篇文章 https://reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html
我不太确定我是否完全理解这一点。我确实对它进行了一些实验,但没有任何可行的解决方案。
理想情况下,我需要让构造函数暂停,直到所有 redux 存储都被填充,这也是没有意义的。道具数组可以是空的。
有关于 Slack 的讨论,但似乎没有一个确切地解决这个问题。我尝试谷歌搜索问题,但找不到解决的确切问题......
我需要 mapStateToProps 道具来构建我的状态。看起来我无法做到这一点,并且需要完全重构代码以在渲染函数中更多地工作,并加载三元运算符和/或在渲染返回之前从渲染函数调用设置状态。
对这个问题有什么想法吗?
丹尼尔
【问题讨论】:
标签: javascript reactjs redux react-redux