import React, {Component} from 'react';
import Square from './components/board.js';
const spaceArr =()=> {
const arr =[];
for (var i=0; i<20; i++){
arr.push(Math.floor(Math.random()*(400-0)));
}
return arr;
};
class App extends Component{
constructor(){
super();
this.state={
spaces: spaceArr(),
array : new Array(400).fill(false)
} ;
var th = this;
this.state.spaces.map(function(value){
th.state.array.splice(value, 1, true)});
this.click= this.click.bind(this);
}
componentDidMount(){
this.setState({array: this.state.array})
}
click(i, live) {
this.state.array[i]= !live;
var array = this.state.array;
this.setState({array: array}, function(){
console.log(array[i])
})
}
render(){
var th = this;
return (
<div>
<div className='backboard'>
<div className='board'>
{this.state.array.map(function(live, index){
return <Square key={index} living={live} clicker=
{th.click.bind(this, index, live)}/>
})
}
</div>
</div>
</div>
)
}
}
export default App;
Я пытаюсь выяснить, как повторно отобразить измененное изменение состояния после setState. событие click является обработчиком, который передается дочернему компоненту. обновленный массив должен повторно отобразить обновленный рендеринг дочерних компонентов.Работа для повторного рендеринга нового состояния в реакции
Вы можете поделиться своим кодом, где вы определили функцию 'click'? –
@ Md.EstiakAhmmed ok, обновлено –