FlatList没有呈现我的json数组数据

时间:2018-11-20 08:05:02

标签: json reactjs react-native

我在FlatList组件中呈现数组json数据时遇到问题。我已经通过网络和stackoverflow搜索了大量文档和信息。这是我浏览过的几个网页链接。但是我无法弄清楚。

How to use Flatlist

FlatList

FlatList not Rendering

这是我的代码;

//Creating array for map the each item in places.
let array = [];
//Initializing the data to array for mapping it. data1 is my json data.
array.push(data1);

flatList = <FlatList
        style={{ backgroundColor: 'red' }} // backgroundColor is visible but no List Component data in it.
        data={array}
        keyExtractor={(x, i) => i.toString()}
        renderItem={({item}) => {
            <List
                district = {item.a.b.c.jsonArray[0].address}
                phoneNumber = {item.a.b.c.jsonArray[0].phoneNumber}
                neighbourhood = {item.a.b.c.jsonArray[0].sideInformation}
            /> // nothing returns as <List />
        }}
    />;

这是我的退货声明;

return (
        <View style={{ flex: 1 }} >
            <TopBar
                name={"title"}
                bColor={"#1b92e7"}
                miniLogo={require('../../../assets/pictures/image.png')}
            />
            <List></List> 
            <List></List>
            {flatList}
        </View>
    );

在return语句中,它呈现了这两个组件,但是在flatList变量中,它不呈现。是什么原因引起的?我希望你们能帮助我吗?

非常感谢您的努力。

2 个答案:

答案 0 :(得分:0)

您没有从renderItem返回任何信息 尝试这样:

 renderItem={({item}) => {
            return (<List // for every item return your component
                district = {item.a.b.c.jsonArray[0].address}
                phoneNumber = {item.a.b.c.jsonArray[0].phoneNumber}
                neighbourhood = {item.a.b.c.jsonArray[0].sideInformation}
            />); 
        }}

或者只是使用简短的语法:

renderItem={({item}) => (<List // take a look at the brackets
                    district = {item.a.b.c.jsonArray[0].address}
                    phoneNumber = {item.a.b.c.jsonArray[0].phoneNumber}
                    neighbourhood = {item.a.b.c.jsonArray[0].sideInformation}
                />
            )}

答案 1 :(得分:0)

作为@oma的答案,我更改了以下数据;

public class CW_FirmaCommunication
{
    [Key]
    public int FC_ID { get; set; }
    public int FC_VAT { get; set; }
    public int FC_Type { get; set; }
    public string FC_Data { get; set; }

    [ForeignKey("FC_VAT")]
    public virtual CW_Firma CwFirma { get; set; }
}

public class CW_Firma
{
    [Key]
    public int F_VAT { get; set; }
}

,我的另一个错误是认为({item})引用了我要呈现的json数据。它必须等于我们要呈现的json数据数组。

data = {array} -> data = {array[0]}

作为@Stundji的答案,它应该返回列表。

//final data.
data = {array[0].a.b.c.jsonArray}

感谢所有贡献。