-1
親コンポーネントの子コンポーネントの状態を使用しますin this example。私は正確に行うことができるようにしたいことはこれです:ReactJsは子コンポーネントの状態を取得します
<Application onChange={(myVar)=>{console.log(myVar)}}/>
親コンポーネントの子コンポーネントの状態を使用しますin this example。私は正確に行うことができるようにしたいことはこれです:ReactJsは子コンポーネントの状態を取得します
<Application onChange={(myVar)=>{console.log(myVar)}}/>
あなたはonChange
があなたのアプリケーションコンポーネントに渡すだけで、通常の小道具ですね。だからそれが関数なら、いつでも呼び出すことができます。この場合、アプリケーションのstate
が更新されたときに呼び出すほうが理にかなっています。オプションのコールバック関数であるsetState
関数の2番目のパラメータを使用することができます。しかし、あなたがonChange
propが定義されていることを確認してください。それは、あなたが渡したいパラメータで呼び出す前の関数です。
class Application extends React.Component {
constructor(props){
super(props);
this.state = {myVar:0};
setInterval(()=>{
this.setState({ myVar:this.state.myVar + 1 },() => {
if(this.props.onChange && typeof this.props.onChange === "function")
this.props.onChange(this.state.myVar)
});
}, 3000);
}
//.....
}
更新Codepen:https://codepen.io/anon/pen/gWvKxa