【发布时间】:2026-02-01 06:20:04
【问题描述】:
我想要做的是从我渲染的旧数组中插入一个值到新数组中。
现在它可以完美呈现我想要的数据,但是当我将它推入新数组时,它变成 [id : undefined]
如何调用我从 ListView 渲染的 ticketId 保存到 myState 数组中?
class SeactionSeating extends React.Component {
state = { ticket: [], myState: [] };
componentWillMount() {
const tempticket = [];
let i;
let k = 1;
let x;
for (i = 1; i <= 50; i++) {
k++;
if (i < 10) {
x = 'north';
} else if (i < 20) {
x = 'south';
} else if (i < 30) {
x = 'west';
} else if (i < 40) {
x = 'east';
}
tempticket.push({ ticketId: i, row: k, gate: x });
}
this.setState({ ticket: tempticket });
this.setState({ myState: [] });
//i deliberately leave mystate empty so that i can push new array later
}
render() {
const ticketTemp = () => {
this.state.myState.push({ id: ticketId });
console.log(this.state.myState);
};
return (
<Container>
<View style={styles.listViewTitlePanel}>
<Text> hello there</Text>
</View>
<Content>
<ScrollView>
<List>
{ this.state.ticket.map((item, i) => (
<ListItem
roundAvatar
key={i}
avatar={
<View >
<Text>{item.ticketId}</Text>
</View>
}
title={
<View>
<Text>ROW :{item.row}</Text>
</View>
}
subtitle={
<View>
<Text>GATE :{item.gate}</Text>
</View>
}
//call ticketTemp
onPress={ticketTemp}
/>
))
}
</List>
</ScrollView>
</Content>
</Container>
);
}
}
【问题讨论】:
-
您是否检查过
ticketId在ticketTemp方法中是否有价值? -
@JigarShah 是的,我已经检查过它有一个值
标签: javascript arrays reactjs react-native