Как показать только некоторую часть `selectedValue` в` Picker` в реагирующем? - PullRequest
0 голосов
/ 13 мая 2019

Я внедряю Picker в реагирующем.Значения выбора являются String.Мне нужно показать только часть этой строки в выбранном значении, и мне нужно разделить эту строку и получить данные из нее динамически.

<Picker selectedValue={() => this.state.item.unit[this.state.uIndex].split(/\d+(cals)/)[0]} 
                       style={style.pick}


                       onValueChange={(itemValue, itemIndex) => this.setState({uIndex: itemIndex})}
                       mode="dropdown"
                    >
                    {
                       this.state.item.unit.map((sizee) => {
                           return( <Picker.Item label={sizee} value={sizee} /> );
                       })
                   }
                   </Picker>

Приведенный выше код меняет состояние uIndex и работает нормальноесли я напишу selectedValue следующим образом:

selectedValue={this.state.item.unit[this.state.uIndex]} 

Как показать разделенное значение?

1 Ответ

0 голосов
/ 13 мая 2019

Вам необходимо разделить его перед отправкой на сборщик:

// создаем новый массив с разделенными значениями для замены исходного

var arrayWithSplittedStrings=[];
 this.state.item.unit.map(item=>{
    let eachItemSplitted = item.split(/\d+(cals)/)[0]
    arrayWithSplittedStrings.push(eachItemSplitted )
})
//then replace your state with the splitted values
this.setState({item[unit]:arrayWithSplittedStrings})

тогда все должно работать так, как вы хотите

...