Class2
の唯一のコンテナであるClass1
があります。私はTest
コンポーネントをClass1
に宣言します。今度はTest
をパラメータとしてClass2
に渡したいと思います。アクセス外部のコンテキストからのコンポーネント関数の反応
Test
のコンポーネントのコンテキストには、Class2
が入っている場所にアクセスすることはできますか?
export default class Class1 extends React.Component {
render() {
let test = (<Test />);
return (
<Class2 test={test} />
);
}
}
export default class Class2 extends React.Component {
constructor(props) {
super(props);
}
render() {
let { test } = this.props;
// how to access Test class context?
test.setValue("WHERE IS MY CONTEXT?");
return (
<div>{ test }</div>
);
}
}
export default class Test extends React.Component {
constructor(props) {
super(props);
this.state = {
value: ""
};
}
setValue(val) {
this.setState({
value: val
});
}
render() {
return (
<div>{ this.state.value }</div>
);
}
}
私が直接test.props
にアクセスしようとすると、私はprops
は読み取り専用されているとすることはできないという反応させ、エラーが出る...私はWeb上で何かを見つけることとtest
オブジェクトを検討しようとしたが、私は何も見つかりませんでした代わりに状態のアクセス...
は、親までの状態を移動します。 – azium
状態を親に移動するとどういう意味ですか?ロジックを 'Test'から' Class1'まで動かす?私はこれを望んでいない。私のプロジェクトは単純ですが、一般的なウィザードコンポーネントです。この方法で動作します。実際にはウィザードの本体コンポーネントであるクラスがあります。私はこのクラスをウィザードに渡しますが、内部に複数のテンプレートを定義することができます。だから私は、ページを設定し、それ自体を更新するために私のテストテンプレートを知らせたい。これは、この例と同じように質問に書かれています。私は子供に文脈を伝える方法を知っていますが、それは反対の方法で、子供から親に可能ですか? – Nickon
データは、parent - > childの形式でしか流れません。しかし、他のデータと同様に、コールバック関数を渡すこともできます。コールバック関数を使用すると、子データを引数として渡すことができます。これは親で処理されます。 – azium