在React的`getDefaultProps()`里面`this.props`?

Jun*_*une 15 reactjs

我正在尝试添加一个依赖于其他道具的道具,它将基本上由组件的所有者组件传递.

所以我做了:

propTypes: {
  user: React.PropTypes.object,
  comment: React.PropTypes.object
},

getDefaultProps: function() {
  return {
    admire: new Admire({
              user: this.props.user, 
              comment:this.props.comment
            })
  };
}
Run Code Online (Sandbox Code Playgroud)

但它似乎是道具user,commentgetDefaultProps通话时无法访问.

有没有办法定义一个默认道具,它取决于将从所有者组件传递的其他道具?

Eri*_*ric 24

getDefaultProps在创建任何实例之前被调用,因此不能依赖this.props.它意味着获取默认道具,以防所有者未通过它们.

另一种解决方案是使用,getInitialState因为这将使您访问this.props.userthis.props.comment.