2017-03-11 5 views
0

에서 이것은 내가 내가 뭘하려고 오전 위치의 원하는 값을 업데이트하는 함수를 호출입니다업데이트 배열은 ReactJS

this.state = { 
      check: 0, 
      places: ["0","0","0","0","0","0","0","0"], 
    } 
    } 

변수 상태에있는 것입니다.

changeValue= (event) => { 

     this.setState({ 
      places[2]: "1", 
     }); 
    } 

을 그리고 그것은 작동하지 않습니다 : 예를 들어,이 같은 changeValue 기능을 사용하고 있습니다. 완전히 업데이트 된 배열을 전달할 수 있지만 현재 상태의 다른 값이 필요하다는 것을 알고 있습니다.

changeValue = (event) => { 
    const places = this.state.places.slice(); 
    places[2] = '1'; 
    this.setState({ places }); 
} 
+0

> ---이 시도 : http://stackoverflow.com/questions/29537299/react-how-do-i-update-state-item1 -on-setstate-with-jsfiddle –

답변

1

입니다. 여기에 다른 대답에 추가

this.changeValue = this.changeValue.bind(this); 

, 당신은 또한 당신이 아이로부터 콜백을 통해 이벤트를 처리하기 위해 노력하고 특히, 그것은 작동하려면 생성자에서 기능을 결합해야합니다.

0

이 생성자에이 줄을 추가 : 현재 위치 배열의 휴식을 취 (당신이 setState를 외부 상태를 돌연변이하지 않도록하기 위해 복사) 방법은 다음과

0

setState 키를 상태 키로 사용하여 객체를 인수로 취합니다. 상태를 업데이트하기 위해 올바른 키를 전달했는지 확인하십시오.

이 답변이 도움이 될 것입니다

changeValue= (event) => { 
     this.setState({ 
      places: places.map((item, index) => { 
          if(index == 2) return 1; 
          return item; 
        }); 
     }); }