Это для реактивного проекта JS (jsfiddle). Текстовое поле должно обновляться с флажком с проверкой true/false, но это не так. Может кто-нибудь объяснить, почему?Не удается взаимодействовать между компонентами реакции
var AutoGenerateCheckbox = React.createClass ({
getInitialState: function() {
return {checked: false};
},
update() {
this.state.checked = !this.state.checked;
alert(this.state.checked);
this.props.onUpdate(this.state.checked);
},
render() {
return (
<input type="checkbox" checked={this.state.checked} onChange={this.update} />
);
}
});
var TBox = React.createClass({displayName: 'TextBox',
render: function() {
return (
<div>
Checkbox value: {this.props.data}
</div>
);
}
});
var KApp = React.createClass({
getInitialState: function() {
return {autoChecked: false};
},
handleAutogenChange: function(val) {
alert('handleAutogenChange:' + val);
this.setState({autoChecked : val});
},
render: function() {
return (
<div>
<AutoGenerateCheckbox onUpdate={this.handleAutogenChange}/>
<TBox data={this.state.autoChecked}/>
</div>
);
}
});
ReactDOM.render(
<KApp />,
document.getElementById('content')
);
'this.state.checked =! This.state.checked' Почему вы изменяете состояние напрямую, не используя' setState() '? – lux
@lux Потому что я только начал учиться реагировать, и я понятия не имею, что я делаю. Спасибо за подсказку, я посмотрю на setState. – KyleM
Ах, круто, было смущено, так как вы использовали «setState» в другом компоненте, поэтому просто хотели, чтобы я ничего не пропустил. – lux