我想要一个用于状态的二维数组。一旦用户点击触摸区域。它将更新这个二维数组中的一个值。出于某种原因,我的代码出错了。下面是构造函数和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/

10-10 00:50