【问题标题】:When migrating from ListView to Flatlist I am getting values in object I need to get as a value从 ListView 迁移到 Flatlist 时,我在对象中获取值,我需要将其作为值获取
【发布时间】:2019-12-12 15:11:21
【问题描述】:

从 ListView 迁移到 Flatlist 时,我在一个对象中获取值,我需要将其作为数组中的值获取。

我已将 react-native-modal-filter-picker 修改为需要为我工作的自定义组件。这里 onSelect 显示对象中的结果。

renderOptionList = () => {
   const {
     noResultsText,
     listViewProps,
     keyboardShouldPersistTaps,
     keyExtractor,
   } = this.props

   const { ds } = this.state;
   if (!ds.length) {
     return (
     <FlatList
       data={ds}
         keyExtractor={keyExtractor||this.keyExtractor}
         {...listViewProps}
         renderItem={() => (
           <View style={styles.noResults}>
             <Text style={styles.noResultsText}>{noResultsText}</Text>
           </View>
         )}
       />
     )
   } else {
     return (
       <FlatList
         keyExtractor={keyExtractor||this.keyExtractor}
         {...listViewProps}
         data={ds}
         renderItem={this.renderOption}
       />
     )
   }
 };

 renderOption = ({item}) => {
   const {
     selectedOption,
     renderOption,
     optionTextStyle,
     selectedOptionTextStyle
   } = this.props;

   const { key, label } = item
   let style = styles.optionStyle;
   let textStyle = optionTextStyle||styles.optionTextStyle;
   if (key === selectedOption) {
     style = styles.selectedOptionStyle;
     textStyle = selectedOptionTextStyle ||styles.selectedOptionTextStyle
   }

   if (renderOption) {
     return renderOption(item, key === selectedOption)
   } else {
     return (
       <TouchableOpacity activeOpacity={0.7}
         style={style}
         onPress={() => this.props.onSelect(item)}
       >
         <Text style={textStyle}>{label}</Text>
       </TouchableOpacity>
     )
   }
 };

【问题讨论】:

    标签: react-native react-native-flatlist


    【解决方案1】:
    const object1 = {
      a: 'somestring',
      b: 42,
      c: false
    };
    
    console.log(Object.values(object1));
    

    输出将是

    ["somestring", 42, false]
    

    【讨论】:

    • 在我上面的代码中,Flatlist renderOption Onselect 返回对象。我怎么能改变它。我也只需要一个值而不是 onselect 中的所有值\
    【解决方案2】:

    试试这个...

    JSON.stringfy(object)
    

    JSON 的一个常见用途是与 Web 服务器交换数据。

    JSON.stringfy 将 JavaScript 对象转换为字符串。

    【讨论】:

    • 虽然这可能是一个正确/有用的答案,但请考虑添加一些额外的上下文或关于为什么有效的简短说明。
    • @ZGski 在我的回答中添加了解释。谢谢
    猜你喜欢
    • 1970-01-01
    • 2018-10-14
    • 1970-01-01
    • 2020-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-04
    • 1970-01-01
    相关资源
    最近更新 更多