2017-05-25 7 views
0

React NativeのPickerコンポーネントにAsyncStorageから取得したデータを取り込もうとしています。コードは以下の通りである。componentWillMountでReactネイティブ・ピッカーAndroidが動的に生成した戻り値:プロパティー値が未定義の場合

  1. 負荷データ:

    StorageManager.get('clients').then((clients) => { 
        this.setState({ clientsData: clients }); 
    }); 
    
  2. RenderPicker方法:

    let clientList = this.state.clientsData.map((client) => { 
        const label = client.name; 
        const value = client.company; 
        return <Picker.Item label={label} value={value} />; 
    }); 
    
    return (
        <Picker 
         // Redux managed 
         selectedValue={this.props.clientId} 
         onValueChange={(itemValue) => 
         // Redux managed 
         this.props.invoiceFieldChanged({prop: 'clientId', value: itemValue}) } 
        > 
         <Picker.Item label="Select a client" value={0}/> 
         {clientList} 
    
        </Picker>); 
    

ハードコードされたオプションを選択すると、期待どおり動作が行きます"Select a Client"のようなものですが、他のオプションを取得しようとすると次のエラーが表示されます: enter image description here

答えて

0

問題が見つかりました。アイテムをハードコードしてから地図を使うことはできないようです。したがって、データを前処理して単一の配列を与えることが解決策です。

関連する問題