この記事では主にreact親コンポーネントと子コンポーネント間の値の受け渡し方法を紹介していますが、編集者がとても良いと思ったので、参考として共有させていただきます。エディターをフォローして見てみましょう
概念的には、コンポーネントは閉じられた環境です。 React は一方向のデータ フロー設計になっており、親コンポーネントのみが子コンポーネントにデータを渡します。正しい技術仕様があれば、所有者コンポーネントは所有者コンポーネントにデータを設定できます。
それでは、子コンポーネントはどのようにして親コンポーネントと通信するのでしょうか? 簡単に言えば、メソッド (関数) が親コンポーネント内で設定され、子コンポーネントの props に渡されるということです。子コンポーネント イベント発生時に、このpropsで設定したメソッド(関数)を直接呼び出します。しかし、途中で誰か(オブジェクト)が関数設定を呼び出すのがこれの役割です。
props を使用して親コンポーネントを子コンポーネントに設定し、子コンポーネントから親コンポーネントに上記のメソッドを使用します。これは基本的なルーチンですが、非常に面倒で柔軟性に欠けるため、単純なコンポーネント構造にのみ適用されます。したがって、サブコンポーネント間で通信するのはそれほど簡単ではありません。もちろん、複雑なアプリケーションでは、この問題を解決するには、flux または redux を追加で使用する必要がある、ということを聞いたことがあると思います。
ただし、React アプリケーションの全体的な設計を考えるときは、グローバルな状態であるアプリケーション ドメインの状態の概念を理解する必要があります。 1 つ目はアプリケーション ドメインの状態です。これは通常、子コンポーネントではなく親コンポーネント内にあります。多くの子コンポーネントがあり、それらはツリー構造の奥深くに位置します。
例:
子コンポーネント
import React, { Component } from 'react' export default class Item extends Component { constructor(props) { super(props) this.state = { prices: 0 } } handleChange(){ const prices =800; this.setState({ prices: price }) //用传过来的changePrice属性(props),是个函数,呼叫它把price交给父组件中的函数去处理 this.props.changePrice(price) } render() { const { prices } = this.state; return ( <p> <p onChange={this.handleChange.bind(this)}> </p> <p>{prices}</p> </p> ) } }
親コンポーネント
import React, { Component } from 'react'; import Item from './Item' class App extends Component { constructor(props) { super(props) this.state = {price: 0} } //给子组件用来传price用的方法 changePrice(price){ this.setState({price: price}) } render() { return ( <p> <Item changePrice={this.changePrice.bind(this)}/> <p>{this.state.price}</p> </p> ); } } export default App;
以上がReact 親コンポーネントと子コンポーネント間の値転送の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。