【问题标题】:undefined is not an object when using sectioned multi select react native使用分段多选反应本机时,未定义不是对象
【发布时间】:2021-12-08 11:38:34
【问题描述】:

我有一段代码可以创建基于https://github.com/renrizzolo/react-native-sectioned-multi-select 的分段多选组件。

这是我的代码:

import React, { useState } from 'react';
import {I18nManager,View,Text,SafeAreaView,Image,SectionList,TouchableOpacity,TextInput,ScrollView,useWindowDimensions,Linking} from 'react-native';
import Icon from 'react-native-vector-icons/FontAwesome';
import SectionedMultiSelect from 'react-native-sectioned-multi-select';


export function SellWithUsFirstScreen3(props){
    
const items = [
  {  
    name: "Fruits",
    id: 0,
    children: [{
        name: "Apple",
        id: 10,
      },{
        name: "Strawberry",
        id: 17,
      },{
        name: "Pineapple",
        id: 13,
      },{
        name: "Banana",
        id: 14,
      },{
        name: "Watermelon",
        id: 15,
      },{
        name: "Kiwi fruit",
        id: 16,
      }]
  },
  {
    name: "Gems",
    id: 1,
    children: [{
        name: "Quartz",
        id: 20,
      },{
        name: "Zircon",
        id: 21,
      },{
        name: "Sapphire",
        id: 22,
      },{
        name: "Topaz",
        id: 23,
      }]
  },
  {
    name: "Plants",
    id: 2,
    children: [{
        name: "Mother In Law\'s Tongue",
        id: 30,
      },{
        name: "Yucca",
        id: 31,
      },{
        name: "Monsteria",
        id: 32,
      },{
        name: "Palm",
        id: 33,
      }]
  },
]


const [selectedItems,setselectedItems] = useState([]);



onSelectedItemsChange = (theitem) => {
  
  setselectedItems(prevState => [...prevState, theitem]);
}
console.log(selectedItems);

/////////
    return (
        <SafeAreaView style={{flex:1,backgroundColor:'white'}}>
            <View style={styles.container}>
                
                        <View>
                        <SectionedMultiSelect
                          items={items} 
                          uniqueKey='id'
                          subKey='children'
                          selectToggleIconComponent={<Icon name='folder' />}
                          dropDownToggleIconUpComponent={<Icon name='chevron-up' />}
                          dropDownToggleIconDownComponent={<Icon name='chevron-down' />}
                          selectedIconComponent={<Icon name='heart' />}
                          selectText='Choose some things...'
                          showDropDowns={true}
                          readOnlyHeadings={true}
                          onSelectedItemsChange={this.onSelectedItemsChange}
                          selectedItems={selectedItems}
                          IconRenderer={Icon}
                        />
                        </View>
                        
            </View>
        </SafeAreaView>
    );
}

我收到此错误:

TypeError: undefined is not an object (evalating 'item[subKey]').

我尝试了几次代码更改,但仍然无法获得与原作者视频图像相同的结果。

有什么帮助吗?

【问题讨论】:

    标签: reactjs react-native


    【解决方案1】:

    我认为您的问题是您需要在字符串周围加上双引号,以便为每个字符串加上 uniqueKey="children" 。也没有这个。所以你必须让 onSelectedItemsChange={this.onSelectedItemsChange} 变成 onSelectedItemsChange={onSelectedItemsChange}

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-13
      • 2017-09-28
      • 2020-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多