2016-07-14 3 views
0

Я хочу, чтобы значения в массиве и передать эти значения в качестве параметров select тега. Я следующий,как передать значения в массив и передать эти значения в Select Tag

используемый плагин

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

присвоен государственный, как

this.state = {company:[]}; 

толкая в этом массиве, как

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

и назначая для выбора тега в

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

Но он не работает. Он показывает, что

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 в пустой массив раньше.

Это может быть связано с этим. Состояние не определено. Вы определяете свой селектор в собственной созданной функции? А не в вашем классе собственный метод рендеринга? В этом случае вам необходимо привязать это к вашему методу.

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.renderSelector = this.renderSelector.bind(this); 
+0

что я должен написать в моем методе _getOptionList –

+0

_getOptionList() { возврата this.refs [ 'OPTIONLIST']; } Это то, что я написал в моем методе. и –

+0

Эта строка, которую я положил после завершения моего тега select –

Смежные вопросы