1
私は最初のsetState()でコールバックとして2番目のsetState()を作成しています。この貧しい練習ですか? 2つのsetStatesを同期して呼び出す別の方法はありますか?コールバックで2番目のsetStateを作成する - 悪い習慣ですか?
最初は、最初のsetState()でupdateData()を呼び出したときに、myComponentコンポーネントの正しいデータをレンダリングするのに遅延がありました。それは背後にある一歩だった。これは機能しますが、それは従来のものですか?
import React, { Component } from "react";
import MyComponent from "../../components/MyComponent";
import RaisedButton from "material-ui/RaisedButton";
import { generateData } from "./generateData";
class App extends Component {
constructor(props) {
super(props);
this.state = {
text: "",
data: []
};
}
updateData(){
this.setState({
data: generateData(this.state.text)
})
}
handleChange(e) {
this.setState({
text: e.target.value
},() => {
this.updateData(this.state.text)
});
}
handleSubmit(e) {
e.preventDefault();
}
render() {
return (
<div>
<h2>Input</h2>
<form onSubmit={e => this.handleSubmit(e)}>
<textarea
value={this.state.text}
onChange={e => this.handleChange(e)}
/>
<div>
<RaisedButton type="submit"/>
</div>
</form>
<h2>Output</h2>
<MyComponent data={this.state.data} />
</div>
);
}
}
export default App;
私は間違いなくgenerateData(this.state.text)を呼び出していました。これが私の問題でした。ありがとうございました! ;) – FakeEmpire