У вас есть пара проблем в методе createArray (), вам нужно создать строку и затем добавить ее в массив. Кроме того, как говорит @ageoff, вам нужно звонить setState
, а не использовать this.state
напрямую. Это ваш код был изменен, чтобы сохранить его как тот, который у вас есть в настоящее время - но он должен работать.
createarray1
теперь просто возвращает массив, а функция handleSubmit
устанавливает состояние.
Редактировать : теперь я изменил createarray1
, так что это чистая функция, и вы передаете rowCount и colCount. Теперь вы можете проверить, что createarray1
работает независимо:
createarray1(rowCount, colCount){
let myarr = [];
for(let i=0; i < rowCount; i++){
let row = []
for(let j=0; j < colCount; j++){
let col = "1"
row.push(col);
}
myarr.push(row);
}
return myarr;
}
handleSubmit(){
this.setState({
array1: this.createarray1(this.state.row1, this.state.col1)
});
}
Вот сама функция, показывающая, что она создает правильный массив:
let createarray1 = function(rowCount, colCount){
let myarr = [];
for(let i=0; i < rowCount; i++){
let row = []
for(let j=0; j < colCount; j++){
let col = "1"
row.push(col);
}
myarr.push(row);
}
return myarr;
}
console.log(createarray1(2,3));