在我的项目中,我正在从服务器和json
中的列表中获取card
数据。但是,我面临的问题是每当有新项目添加到json data
新项目中时将会在现有card
的底部呈现。但是我想要的是应该在现有cards
的顶部填充。因此,我该如何做?列出卡片。请帮助我找到解决方案。任何帮助都是非常感谢的。谢谢。
componentWillMount(){
fetch(GLOBAL.NEW_WORK_REQUEST,{
method: 'POST',
headers:{
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body:JSON.stringify({
name:"name"
})
})
.then((response) => response.json())
.then((responseData) =>
{
this.setState({
work_rq :responseData.data
})
});
}
}
...
...
<View>
{this.state.work_rq.map(a => (
<CardSection>
<TouchableOpacity>
<Text style={{fontSize:18,padding:8}}>Work Category:{a.work_type}</Text>
</TouchableOpacity>
</CardSection>
))}
</View>
答案 0 :(得分:1)
您可以使用两种方法
1)使用array.reverse()
,将不使用两个数组。
2)使用两个数组添加新数据时将使用第二个数组
这里我使用2个状态newdata
和data
,其中newdata
位于
像这样,(第二种方法)
constructor(props) {
super(props);
this.state = { data: [1, 2, 3], newData: [] };
}
handleClick() {
var data = Math.random();
this.setState({ newData: this.state.newData.concat(data) });
}
render() {
console.log(this.state);
return (
<div>
{this.state.newData && this.state.newData.reverse().map(a => {
return <div>{a}</div>
})}
{this.state.data.map(a => {
return <div>{a}</div>
})}
<button
className={this.state.isToggleOn ? 'ON' : 'OFF'}
onClick={(e) => this.handleClick(e)}>
{this.state.isToggleOn ? 'ON' : 'OFF'}
</button>
</div>
);
}
第一种方法,您可以简单地执行array.reverse,所有数据都将附加到reverse()