私は働くコードがないことをお詫びしますが、これを行う方法についてはわかりません。私はToggleBoxの状態が変更されたときにAppクラスのthis.state.countを更新したいと考えています。私はこれが以前におかげで、以前に頼まれていると確信しています。ReactJS - 子の状態が変更されたときに親の状態を更新する
import React, { Component } from 'react';
import ToggleBox from '../components/ToggleBox';
class App extends Component {
constructor(props) {
super(props);
this.state = {
total : 60,
count: 0
};
}
getToggles() {
let toggles = [];
for (let i = 0; i < this.state.count; i++) {
toggles.push(<ToggleBox checked={false} key={i} />);
}
return toggles;
}
render() {
let toggles = this.getToggles();
return (
<div className="App">
{{this.state.count}} - {{this.state.total}}
<div className="container-toggle-box">
{toggles}
</div>
</div>
);
}
}
export default App;
...とコンポーネント:
import React, {Component} from 'react';
class ToggleBox extends Component {
constructor(props) {
super(props);
this.state = {
active = this.props.checked
};
this.handleClick= this.handleClick.bind(this);
}
handleClick() {
this.setState({active: (this.state.active) ? false : true}
}
render() {
let mark = (this.state.active) ? 'x' : 'o'
return (
<span>
{mark}
</span>
);
}
}
export default ToggleBox;
コンポーネントをレンダリングしているだけで、マーク上のonClickイベントで状態を変更したいのですか?その小道具を設定し、関数を渡します。 – bntzio