[英]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]}> </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.