2017-09-30 5 views
0

私はReact NativeでReduxを使用していますが、キーを持つreduxストア配列の特定のインデックスにアクセスする際に問題があります。子コンポーネント経由でreduxネイティブにアクセスする

ここで私がしようとしていることの大まかなアイデアです。私はのためにreduxStoreにアクセスするParentComponentを持っていて、idtitleという配列を含んでいます。data

class ParentComponent extends Component { 

    dataArray() { 
    return Object.keys(this.props.data).map(key => this.props.data[key]) 
    } 
    /* 
    Consider the dataArray has elements which are an array of `id` & `title` 
    */ 

    render() { 
    return (
     <ScrollView style={styles.fragmentContainer}> 
     {this.dataArray().map((element) => { 
      return 
      <ChildComponent 
      key={element.id} 
      id={element.id} /> 
     })} 
     </ScrollView> 
    ) 
    } 

} 

は今、私はChildComponentを経由して、配列の各要素のアクセスtitleをしたいです。これは、私がアクセスするためにやろうとしていることです:

class ChildComponent extends Component { 
    render(
    return (
     <View> 
     <Text>{this.props.data[this.props.id].title}</Text> 
     </View> 
    ) 
) 
} 

明らかに上記は機能しません。それは私がやろうとしていることのアイデアです。私は、keyを使用してreduxストアdataにアクセスすることができません。私はそれにアクセスする方法を見つけようとしましたが、解決策は見つかりませんでした。 ChildComponentの状態にアクセスする私の方法が間違っています。どのように私はこれを達成することができます誰に参照することができますか?

注:具体的には、ChildComponentで状態にアクセスします。それがどのように動作するはずでない場合は、別の方法、またはこれがどのように行われるべきかを説明するいくつかのドキュメントを参照してください。

答えて

0

子コンポーネントがクラスコンポーネントの場合、connectをインポートし、レデューサーをmapStateToPropsに設定し、exportにバインドします。

また、親から子コンポーネントへの減速材小数点値を小道具として送信することもできます。このようなもの<Child value={this.props.myData} />。子コンポーネントでは、this.props.valueと呼ぶことができます。このアプローチを使用する場合、あなたの子供がクラスのコンポーネントであるかどうかは関係ありません。子コンポーネントの作成時にvalueもインスタンス化することを忘れないでください。

希望します。

0

まずはあなたの親から子供にdata小道具を渡すことはありません。したがって、あなたの子コンポーネントにthis.props.dataを取得することはありません。

titleを、あなたがidを渡したように小道具として渡すことができるように、そのように抽出する理由がわかりません。

特にreduxストアにアクセスする場合は、connectreact-reduxから使用します。ここで

http://redux.js.org/docs/basics/UsageWithReact.html

ことを行う方法を参照するためのリンクです
関連する問題