簡體   English   中英

defaultProps覆蓋轉置道具

[英]defaultProps overrides delevert props

我有一個簡單的react組件,可以將bool prop發送給它,例如<MenuItem active={notificationMenu.shown} />
但是prop不會在組件內部被更改,即使我將其傳遞到element上也總是正確的

@Radium
export class MenuItem extends Component {
  styles = {
    hidden: {
      listStyleType: "none"
    }
  }
  static propTypes = {
    active: React.PropTypes.bool.isRequired
  }
  static defaultProps = {
    active: true
  }
  render() {
    if(this.props.active) {
      return (
        <li style={this.props.style}>
          {this.props.children}
        </li>
      )
    } else {
      return (
        <li style={[this.styles.hidden, this.props.style]}>&nbsp;</li>
      )
    }
  }
}

可能是因為演示了鐳作為你的代碼的問題是做工精細這里

React.render(<MenuItem active={false}>some text</MenuItem>, document.getElementById('app'));

Menu父項在this.props.children上進行迭代而未使用傳播操作{...this.props} 所以我在哪里重寫道具到undefined然后defaultProps踢了進來。

romseguy的回答使我考慮重新檢查所有父組件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM