私は2つのビューを持っています。 1つはアイテムのリストを持つ左側のナビゲーションで、もう1つは選択したアイテムに応じて変更する必要があるメインスクリーンです。ここ 反応jsのビュー間でデータを渡す方法
は、私は、「名前」を変更するトグル機能は、私が更新しようとしているある(左ナビゲーションのプロジェクトの一つのthats)顕著な名前に出て慰め
onToggleFilter(checked) {
let d = this.props.data
this.setProjectName(d.id)
//console.log("name" + d.id)
d.onFilter = checked
if(d.children && d.children.length > 0) {
d.children.forEach(item => {
item.onFilter = checked
})
}
this.setState({ selected: checked })
if(this.props.onFilterChanged) {
this.props.onFilterChanged(checked)
}
}
setProjectName (data){
console.log ("name" + data)
let projectName = data
}
どういうわけか、私はそのprojectNameを別のコンポーネントに渡す必要があります。私は反応が新しく、私は何かシンプルだと確信していますが、ドキュメントを読んでからはちょっと立ち往生しています。
OK私は、私は最初の部分を行う方法を知っていると思う:
私はこれは、内の他の場所で設定されている項目の配列に拾って、この機能を持っているデータサービスファイル
getNavInfo(){
_instance.navData = navArray
console.log ("instance hit"+ navArray)
}
を持っていますここでは、ファイル
は、他のコンポーネント
getDataNav()
{
let d = this.dataService.getNavInfo()
console.log ("d here" + d)
}
の呼び出しです
データサービスはもう1つのコンポーネントです。
私はこのかかわらずに行う
これが定義されていないことを私に言ってthis.dataService.getNavInfo().then(this.getDataNav)
getDataNav (data)
{
console.log ("d here" + data);
}
その -
this.dataService.getNavInfo().then(this.getDataNav)
子と子の間ではなく、親子の間でのみデータを渡すことができます。 – Kujira
私はこれのような何かをする必要がありますか? https://facebook.github.io/react/tips/communicate-between-components.htmlその仕組みがわからない... – Jorge
はい。あなたのケースでは、2つのビューコンポーネントを含むコンテナが状態を管理し、状態と関数をそれらに渡す方が簡単でしょう。状況が複雑になる場合は、状態を管理するために[Redux](https://github.com/reactjs/redux)のようなものを調べることをお勧めします。 – Kujira