Как выбрать первый элемент в массиве по умолчанию?

#react-native

Вопрос:

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

        <View style={{width: '50%', paddingRight: 5}}>
          <RNPickerSelect
            style={{
              inputAndroid: styles.dropdownAndroid,
              inputIOS: styles.dropdownIOS,
              placeholder: styles.dropdownPlaceholder,
              iconContainer: styles.dropwownIcon
            }}
            disabled={this.state.vendorDriverSelectDisabled}
            placeholder={{ label: this.props.mainProps.language.selectDriver }}
            onValueChange={(value) => this.setState({...this.state, selectedVendorDriver: value})}
            value={this.state.selectedVendorDriver}
            items={this.state.vendorDrivers}
            useNativeAndroidPickerStyle={false}
            Icon={() => {
              return <EvilIcons name="chevron-down" size={37} color="#333" />
            }}
          />
        </View>
 

Комментарии:

1. просто инициализируйте свое state.selectorVendorDriver значение до 0

2. когда я набираю this.state.selectVendorDriver[0], я получаю сообщение об ошибке

3. Извини, я не это имел в виду. Я имел в виду, что в вашем конструкторе вы можете инициализировать состояние в значение 0 , таким образом, в вашем средстве выбора оно будет по умолчанию. Почему? Потому что это твоя ценность. На что вы его инициализируете прямо сейчас?

4. вот в чем проблема, измените ее на 0

5. О, спасибо, это было полезно

Ответ №1:

Когда вы устанавливаете данные для vendorDrivers состояния, используйте такой код?

 this.setState({ vendorDrivers: someData })
 

Итак, просто установите selectedVendorDriver состояние в первый элемент someData
И код станет

 this.setState({ vendorDrivers: someData, selectedVendorDriver: someData[0] })