На самом деле эта функция
toggleDiv1() {
this.setState({
one: this.state.one
});
}
бесполезна.
Функция переключения должна иметь один
toggleFunc() {
this.setState({stateWatched = !this.state.stateWatched})
}
. Используйте эту функцию в обоих случаях (установите true
или false
).И не bind
при вызове компонента ServiceSelector
, это чепуха.
class App extends Component {
state = {
one: false
};
handleClick(e) {
const userChoice = e.target.className;
this.setState({
userChoice
});
}
toggleDiv() {
this.setState({
one: !this.state.one
});
}
render() {
return (
<div>
<NavBar />
<div className="container-fluid">
<ServiceSelector toggleDiv={this.toggleDiv.bind(this)} />
{this.state.one == false ? <ItemList /> : <ItemList2 />}
</div>
</div>
);
}
}
class ServiceSelector extends React.Component {
render() {
return (
<div>
{" "}
<button onClick={this.props.toggleDiv}>sss </button>
</div>
);
}
}
Если вы хотите иметь 2 кнопки для переключения.Измените логику функции.
function toggleTrue() {
this.setState({one: true})
}
function toggleFalse() {
this.setState({one: false})
}
и затем передайте ее как обычно (не забудьте удалить функцию bind
в дочернем компоненте)