【问题标题】:react navigator react-native-sectioned-multi-select how to convert into array itemsreact navigator react-native-sectioned-multi-select 如何转换成数组项
【发布时间】:2018-08-18 04:39:58
【问题描述】:

我正在尝试使用react-native-sectioned-multi-select,并且我知道该数组上必须有名称和 ID。所以我试图从 url 中获取我的数据并将其存储为数组,但下拉列表除了加载圆圈之外什么都不会显示。

 import React, { Component } from 'react';
import { View } from 'react-native';
import { Container, Body, Header, Title, Content, List, ListItem, Text, Left, Right, Icon, Footer, FooterTab, Button} from 'native-base';
import SectionedMultiSelect from 'react-native-sectioned-multi-select';

var items = [];

class Home extends Component {
  constructor(){
    super();
    this.state = {
      data: [],
      selectedItems: []
    };
  }

  getData(){
    return fetch('https://test.com/php.php')
    .then((response) => response.json())
    .then((responseJson) => {
      console.log(JSON.stringify(responseJson.result));
        this.setState({data:responseJson.result});
        //alert(responseJson.result[1].name);
        //return responseJson.result[1].name;
    })
    .catch((error) => {
      console.error(error);
    });
  }
  componentDidMount(){
    this.getData();

    this.state.data.map((cardData, i) =>{
        items.push({
              name: cardData.name,
              id: cardData.ver
        });
    });

  }
onSelectedItemsChange = selectedItems => {
    this.setState({ selectedItems });
  };


  render() {
    return (
      <View>

        <SectionedMultiSelect
          items={items} 
          uniqueKey='id'
          selectText='Choose some things...'
          showDropDowns={false}
          readOnlyHeadings={false}
          onSelectedItemsChange={this.onSelectedItemsChange}
          selectedItems={this.state.selectedItems}
        />

      </View>
    );
  }
}

这是我上面的代码,我不确定如何将数组正确推送到我的新项目数组中以使列表正常工作。

数据格式应该只有

result [{
   name: xxxxxx,
   ver: xxxxx
}]

【问题讨论】:

  • 可能有人可以帮助我吗?

标签: javascript reactjs react-native react-navigation


【解决方案1】:

在您的items 中,您应该发送this.state.data,它应该可以工作:

<SectionedMultiSelect
    items={this.state.data} /* ** Here ** */ 
    uniqueKey='id'
    selectText='Choose some things...'
    showDropDowns={false}
    readOnlyHeadings={false}
     onSelectedItemsChange={this.onSelectedItemsChange}
     selectedItems={this.state.selectedItems}
 />

【讨论】:

  • no 不起作用,因为它需要唯一键的 id。在这种情况下,我的数据数组没有它们,我需要将它推入另一个带有名称和 id 的新数组
  • 你的data的格式是什么?我的意思是,如果你能给我一个 data 变量的虚拟数据集。
  • 是的,我看到了。我尝试运行 react-native-sectioned-multi-select 以便找出一些问题,但是最新版本的 react-native 存在问题。所以我无法在我的笔记本电脑中使用这个组件。无论如何,我会尽快解决该问题并为您的问题找到解决方案。
  • 我使用了较低版本的 react native,而最新版本由于某种原因无法使用。我认为获得较低版本的 react native lole .54
猜你喜欢
  • 1970-01-01
  • 2019-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多