意図的な行動ではないようです。私は、次のコードでタブののonChangeを発射せずにチェックボックスをチェックし、オフにすることができました:
handleChangeCapture(e) {
e.stopPropagation();
}
checkUncheck(e) {
console.log('change')
this.setState({
isChecked: !this.state.isChecked
});
}
render() {
return (
<MuiThemeProvider muiTheme={muiTheme}>
<Tabs value='a' onChange={ e => console.log(e) }>
<Tab label='a' value='a'>
<div onChangeCapture={this.handleChangeCapture}>
<Checkbox onClick={this.checkUncheck} checked={this.state.isChecked}/>
</div>
</Tab>
</Tabs>
</MuiThemeProvider>
);
}
はもちろん、私は状態にisChecked: false
を追加し、コンストラクタthis.checkUncheck = this.checkUncheck.bind(this);
に入れます。親のdivにonChangeCapture
を使用し、イベントの伝播を停止すると(stopPropagation
)、基本的には私がやったことです。 This answer explains how onClickCapture works。私は明示的にはdocumentationのonChangeCaptureを見つけなかったが、それは同様に動作するようだ。
jsbinまたはcodepenはありますか?それは正常な動作としては聞こえません。 –
@AvraamMavridis質問を更新しました。しかし、ブランチには無関係の変更が含まれています。 –