0

boolプロップを好きに送信する単純な反応コンポーネントがあります<MenuItem active={notificationMenu.shown} />
が、プロップはコンポーネント内で変更されず、要素に渡しても常にtrueです

@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>
      )
    }
  }
}
4

2 に答える 2

2

Menu親が反復処理をthis.props.children行い、スプレッド操作を使用しなかった問題{...this.props}。そのため、小道具を未定義にオーバーライドしてから、defaultProps が開始されました。

romseguyの答えは、すべての親コンポーネントをもう一度チェックすることを考えさせました

于 2015-09-21T09:10:24.877 に答える
1

ここで 示されているように、コードが正常に動作しているため、おそらく Radium に問題があります。

React.render(<MenuItem active={false}>some text</MenuItem>, document.getElementById('app'));
于 2015-09-20T21:11:42.883 に答える