Вам необходимо поднять состояния от детей до общего родителя
Ссылка на документацию:
https://reactjs.org/docs/lifting-state-up.html
App.js
import React, { Component } from 'react';
import Form from './Form';
import Button from './Button';
class App extends Component {
state = {
isChecked: false,
}
handleInputChange = event => {
this.setState({ isChecked: event.target.checked })
}
handleButtonClick = () => {
this.setState({ isChecked: !this.state.isChecked })
}
render() {
return (
<div className="App">
<Form
handleInputChange={this.handleInputChange}
isChecked={this.state.isChecked}
/>
<Button handleButtonClick={this.handleButtonClick}/>
</div>
);
}
}
export default App;
Button.jsx
import React from 'react';
const Button = ({ handleButtonClick }) => (
<div>
<button onClick={handleButtonClick}>
clickme
</button>
</div>
)
export default Button;
Form.jsx
import React from 'react';
const Form = ({ isChecked, handleInputChange }) => (
<input
type="checkbox"
checked={isChecked}
onChange={handleInputChange}
/>
)
export default Form;