2016-07-14 6 views
0
私は、配列内の値をプッシュし、selectタグのオプションとして、これらの値を渡したい

を選択するために、これらの値を渡す方法。私は、次の配列の値をプッシュし、タグ

使用プラグイン

<Select 
     width={250} 
     ref="SELECT1" 
     optionListRef={this._getOptionList.bind(this)} 
     defaultValue="Select a Company ..." 
     onSelect={this._company.bind(this)} asyncOptions={this.state.company}> 
</Select> 
012として

for(let i in data.companyRecord) 
    company.push(data.companyRecord[i].companyname); 

とタグを選択するために割り当て、この配列に押し込む

this.state = {company:[]}; 

ような状態を割り当て

import DropDown, { 
    Select, 
    Option, 
    OptionList, 
} from 'react-native-selectme'; 

をしました

しかし、それは動作しません。そのことを示しています

undefined is not an object('evaluating children.length'). 

私はこの問題を解決してください。

答えて

0

あなたはそのような状態を編集することはできません。

const tempNames = [];  
for(let i in data.companyRecord) 
    tempNames.push(data.companyRecord[i].companyname); 
this.setState({ company: tempNames }); 

ここで、状態に正しい値が設定されます。

しかし、あなたのエラーは、しかし、あなたが正しく前に、空の配列にthis.state.companyを割り当てられ、this.state.companyが未定義であることを示唆している可能性があるため、まだ、いくつかの問題がある可能性があります。

これは未定義ですthis.stateが原因である可能性があります。自分のセレクターを独自の作成した関数で定義していますか?あなたのクラス独自のレンダリングメソッドではないですか?その場合、これをあなたのメソッドにバインドする必要があります。

renderSelector() { 
     return (<Select 
       width={250} 
       ref="SELECT1" 
       optionListRef={this._getOptionList.bind(this)} 
       defaultValue="Select a Company ..." 
       onSelect={this._company.bind(this)} asyncOptions={this.state.company}> 
     </Select>); 
    } 

コンストラクタでは、 "this"をそのメソッドにバインドする必要があります。このように:

this.renderSelector = this.renderSelector.bind(this); 
+0

私は私の_getOptionList方法 –

+0

_getOptionList(){ 戻りthis.refs [ 'OPTIONLIST']で何を書くべきです。 }これは私の方法で書いたものです。そして –

+0

私はここでは例を見てみると、私のselectタグ –

関連する問題