React Native에서 Picker의 item을 map()로 간결하게 구현하는 방법

7340 단어 reactnative

하고 싶었던 일



React Native Picker 의 item 을 map() 로 간결하게 구현하고 싶다

잘못된 예


export default PickerSample = () => {
  const [number, setNumber] = useState(0);
  const numbers = [0, 1, 2, 3, 4, 5];  // <Picker.Item> に表示させたい値の配列

  return (
    <Picker
      style={styles.picker}
      itemStyle={styles.pickerItem}
      selectedValue={number}
      onValueChange={(itemValue) => setNumber(itemValue)}
    >
      {numbers.map((number, index) => {
        return (
          <Picker.Item
            key={index}
            label={number}
            value={index}
          />
         );
      })}
    </Picker>
  )
}

위 코드에서 실행한 결과 다음 오류가 발생했습니다.
undefined is not an object (evaluating 'child.props.value')

해결 방법



다양한 미주 끝에 ...<Picker.Item>labeltoString() 를 지정하는 것만으로 좋았다.
export default PickerSample = () => {
  const [number, setNumber] = useState(0);
  const numbers = [0, 1, 2, 3, 4, 5];  // <Picker.Item> に表示させたい値の配列

  return (
    <Picker
      style={styles.picker}
      itemStyle={styles.pickerItem}
      selectedValue={number}
      onValueChange={(itemValue) => setNumber(itemValue)}
    >
      {numbers.map((number, index) => {
        return (
          <Picker.Item
            key={index}
            label={number.toString()}  // ここに追加
            value={index}
          />
         );
      })}
    </Picker>
  )
}

완제품



문제없이 움직였습니다.

좋은 웹페이지 즐겨찾기