我想要一个用于状态的二维数组。一旦用户点击触摸区域。它将更新这个二维数组中的一个值。出于某种原因,我的代码出错了。下面是构造函数和onPress函数
export default class App extends Component<Props> {
constructor(Props){
super(Props);
this.state = {
test: 'U',
array: [
['n','n','n'],
['6','n','n'],
['n','n','n'],
]
};
}
onPress = (row,colum) => {
this.setState({
array[row][colum]: this.test
});
}
render() {
return (
<View style={styles.middleWrapper}>
<TouchableOpacity style={[styles.child]} onPress={this.onPress(1,0)}><Text> {this.state.array[1][0]}</Text></TouchableOpacity>
</View>
);
}
}
似乎 onPress 方法不对。但我不知道什么是不对的。请帮忙。谢谢。
**
更新 1:
**
得到错误:
\node_modules\react-native\scripts\App.js: Unexpected token, expected "," (38:11)
36 | onPress = (row, column) => () => {
37 | this.setState({
> 38 | array[row][colum]: this.test
| ^
39 | })
40 | }
41 |
最佳答案
意外 token 语法错误来自您的 setState 调用中的对象。 key 需要包裹在另一组方括号中:
this.setState({
[array[row][column]]: this.test
})
但这并不能解决问题。
// Create a copy of the state array so that you don't mutate state.
const array = [...this.state.array];
// Update the copy with the new value.
array[row][column] = this.test;
// Replace the state array with the new copy.
this.setState({ array });
关于javascript - 具有二维数组的状态,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56981805/