【问题标题】:React 16.11 componentDidMount infinite loopReact 16.11 componentDidMount 无限循环
【发布时间】:2020-06-02 19:04:34
【问题描述】:

我们已经从 react 16.9 升级到 6.11,现在我们在 componentDidMount 中出现副作用时出现无限循环。

export class DataComponent extends PureComponent {
    componentDidMount() {
        this.props.setData({id: 'new'});
    }
    render() {
        return <Text>{this.props.data.id}</Text>
    }
}

const mamStateToProps = (state) => ({
    data: state.data
});
const mapDispatchToProps = dispatch => ({
    setData: (data) => dispatch(setDataAction(data));
});

const DataContainer = connect(mamStateToProps, mapDispatchToProps)(DataComponent);

代码非常简单。但是当它在循环中挂载 componentDidMount 调用时,直到最大调用堆栈。 有任何想法吗?

"react": "16.11.0",
"react-native": "0.62.2",

【问题讨论】:

  • 你能在你的代码中发布DataComponent的用法吗?这很可能是您使用它的方式。
  • 是的,好像在其他地方发生了什么事。项目很大,我找不到可以放的地方......比我们升级 react 开始的时候更奇怪

标签: reactjs react-native react-lifecycle


【解决方案1】:
componentDidMount() {
    this.props.setData({id: 'new'}); //add .props
}

【讨论】:

    猜你喜欢
    • 2021-01-31
    • 2020-04-14
    • 2017-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-06
    • 2019-09-13
    相关资源
    最近更新 更多