有上下文参数时,如何替换componentWillReceiveProps?

时间:2019-11-08 03:23:57

标签: javascript reactjs upgrade react-component

在反应中,替换componentWillReceiveProps的标准方法是将getDerivedStateFromPropsgetSnapshotBeforeUpdatecomponentDidUpdate一起使用。当componentWillReceiveProps具有第二个参数上下文并且您需要其中的属性时,该如何替换?

例如,假设代码是这样的-

componentWillReceiveProps(nextProps, context) {
     if (context.href !== this.context.href) {
          const parsedUrl = url.parse(context.href, true);
          const from = parseInt(parsedUrl.query.from, 100) || 0;
          this.setState({
            from,
            more: [],
           });
     }
}

大多数在线示例显示了从componentWillReceiveProps的迁移 getDerivedStateFromPropgetSnapshotBeforeUpdate的参数都没有参数componentWillReceiveProps' context参数。 getDerivedStateFromPropgetSnapshotBeforeUpdate都没有nextContext。那么,context在迁移期间如何处理?

1 个答案:

答案 0 :(得分:0)

我仍在调查中。到目前为止,答案似乎是迁移到获取上下文https://reactjs.org/docs/context.html的下一个上下文API方法。塔尼亚(Tania)就主题https://www.taniarascia.com/using-context-api-in-react/

写了一篇不错的教程