react获取url参数

新手上路,请多包涵

react可以通过this.props.match获取参数,因为之前有修改过this.props,控制台打出的this.props.match是undefined。应该怎么做

阅读 5.3k
2 个回答

最好贴出代码来。

假如 props 是这么修改的:

//...
this.props = {a: 1234};

那么改成:

this.props = Object.assign(this.props, {a: 1234});

问题可能就被解决了。

但是, props属性会受到父组件影响,所以上面只说“可能”解决,如果问题是父组件传值导致的,那么需要通过 UNSAFE_componentWillReceiveProps 来修改 props,这个生命周期既然加了 UNSAFE 前缀,说明作者并不推荐使用它。
最好的解决方案是遵循如下原则:

  1. 组件绝不修改自己的 props 属性;
  2. 组件需要修改的部分放到 state 属性中;
  3. 如果不希望要修改的部分直接触发渲染,可以另加一个属性来存储这部分数据。
新手上路,请多包涵

是父组件传值导致的。代码里面有用到redux,打印出来的this.props是dispatch那些

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题