저는 누군가를 보여주기 위해 React 기능의 기본적인 비트를 모아 놓았습니다. 그리고 콘솔 탭은 나를 직접적으로 변형시키는 것으로 비난하고 있습니다. 나는 당신이 this.setState()
을 사용하는 한 기본적으로 괜찮다고 생각했습니다.이것은 실제로 상태를 돌연변이시키고 있습니까?
이 작은 코드는 상태에 저장된 person
개체의 첫 번째 사람을 뱉어 내고 단추를 클릭하면 나이가 증가합니다 (실제로는 모든 것이 부수적으로 작동 함).
사실 내가 이것을 직접하여 상태를 돌연변이합니까? 그리고 만약 내가 그렇다면 올바른 방법은 무엇입니까? setState
로서
import React, { Component } from 'react';
import './App.css';
import Person from './Person/Person';
class App extends Component {
state = {
persons: [
{ name: 'Max', age: 28 },
{ name: 'Stephanie', age: 26 },
{ name: 'Manu', age: 29 },
],
}
increaseAgeHandler =() => {
this.setState({
persons: [
{ name: 'Max', age: this.state.persons[0].age += 1 },
{ name: 'Stephanie', age: 26 },
{ name: 'Manu', age: 29 },
],
});
}
render() {
return (
<div className="App">
<h1>This is an app</h1>
<button onClick={this.increaseAgeHandler}>Add to age</button>
<Person name={this.state.persons[0].name} age={this.state.persons[0].age} />
</div>
);
}
}
export default App;
상태가 생성자에서 벗어난 이유가 있습니까? –
@LucasOliveira 아마도 bcos 생성자가 없습니다? – Dane