私は親コンポーネントを持っています:Previewer
これは2人の子供をレンダリングします。React.js:同じ親の2人の子供の間のコミュニケーション?
class Previewer extends Component {
render() {
return (
<AudioPlayer />
<SubtitleRow />
);
}
}
ユーザーがSubtitleRow
をクリックすると、変数が渡されます。 startTime
とEndTime
〜AudioPlayer
となり、オーディオを再生する必要があります。私はofficial documentationを読んだ
:
親子関係を持たない2つのコンポーネント間の通信のために、独自のグローバルイベント システムを設定することができます。 componentDidMount()のイベントに登録し、 componentWillUnmount()で登録を解除し、イベントを受け取ったときにsetState()を呼び出します。 フラックスパターンは、これを配置する方法の1つです。
私は、彼らが関係(兄弟)を持っていると思うので、その通信を実装するための他の方法はありますか?
グローバルイベントまたは変数は、JavaScriptによると、良いパーツまたは何かJavaScriptのデザインパターンに従ってはお勧めしません。
関数を呼び出すことができます非常によく説明されている) - 兄弟関係を行うために、あなたはこれらを組み合わせて行うことができます。親コンポーネントにすべての論理/状態を保持させて子コンポーネントを調整し、必要なデータを小道具を介して子に渡し、イベントを親に渡します(コールバックを小道具として渡すことでこれを行うことができます)。このようにするのは、あなたのコンポーネントが自分自身とコントロールするコンポーネントだけを気にしているから、物事はうまく切り離されています。 –
親コンポーネントと通信するためのコールバックを小道具として使用する例については、https://facebook.github.io/react/docs/tutorial.html#callbacks-as-propsを参照してください。 –
私はreactjsに新しいですが、これは助けになるかもしれません。 ' 'そして次に 'someFunction:function(){this.setState({x:"/"})}' ' ' –