'Paramter value' 道具验证中缺少 react/prop-types 错误

'Paramter value' is missing in props validation react/prop-types error

我的 React 应用程序中有两个组件,比如 alphabravo,我所做的就是将参数从 alpha 传递到 bravo 并使用在 bravo 中进行一些操作后,结果返回 alpha。这是示例代码:

var alpha = React.createClass({
  state = {
    value : 'someValue'
  }
  render(){
    return(){
      <bravo value={this.state.value}/>
    }
  }
});

var bravo = React.createClass({
   state = {
     value : this.props.value
   }
   render(){
     return(){
        <h1>{this.state.value}</h2>
     }
   }
});

运行 非常好,我得到了所需的结果,但同时我收到以下错误:

 error  'value' is missing in props validation  react/prop-types

我尝试探索这里的其余问题,但 none 奏效了。

根据docs

With React.createClass(), you need to define propTypes as a property on the passed object, and getDefaultProps() as a function on it

bravo 定义 proptypes,您应该可以开始了。

另一个注意事项 - createClass 接受对象,因此 renderstate 和其他 key-value 对必须是使用冒号而不是等号的值的键。 staterender 应该是 key: {key: value},其中每个都用逗号分隔。喜欢:

var bravo = React.createClass({

   state: {
     value : this.props.value
   },

   render: function(){
     return <h1>{this.state.value}</h2>
   }
});

也许你可以试试

var Alpha = React.createClass({
  state = { value: 'someValue' }
  valueChanger: function() {
    var newVal;
    // change this.state.value and set it to newVal.
    this.setState( {value: newVal} );
  }
  render: function() {
    <Bravo value={this.valueChanger} />
  }
});

这样您就可以将状态保留在顶级组件中。然后你做...

var Bravo = React.createClass({
  render: function() {
    <h1>{this.props.value}</h1>
  }
});

经过将近一个小时的奋斗,我终于想通了solution。在这种情况下,在 bravo class 之后添加以下行有效:

bravo.propTypes = {
   value: React.PropTypes.string
};

所以添加这些行后,组件代码如下:

var bravo = React.createClass({
  state = {
    value : this.props.value
  }
  render(){
    return(){
       <h1>{this.state.value}</h2>
    }
  }
});
bravo.propTypes = {
   value: React.PropTypes.string
};
export default bravo;