我在FlatList组件中呈现数组json数据时遇到问题。我已经通过网络和stackoverflow搜索了大量文档和信息。这是我浏览过的几个网页链接。但是我无法弄清楚。
这是我的代码;
//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变量中,它不呈现。是什么原因引起的?我希望你们能帮助我吗?
非常感谢您的努力。
答案 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}
感谢所有贡献。