JS/Reactでどのようにデータを操作し、その言語にもっと慣れ親しんでいるかを知るための簡単なRPGを作成しようとしています。現在、私は単純なフォームを入力し、オブジェクトを変更しています。オブジェクトの名前はperson
で、私は彼の名前を変更しようとしています。ここでReactコンポーネントを使用してオブジェクトを編集し、その変更をレンダリングしますか?
var person = {
name: ''
}
は、オブジェクトの変更を処理するコンポーネントです:
class ChangePersonProp extends React.Component {
constructor() {
super();
this.state = {value: ''};
this.handleSubmit = this.handleSubmit.bind(this);
this.handleChange = this.handleChange.bind(this);
}
handleChange(event) {
this.setState({value: event.target.value});
}
handleSubmit() {
if (this.props.buttonTitle == 'Name') {
person.name = this.state.value;
}
}
render() {
return(
<form onSubmit={this.handleSubmit}>
<label>
{this.props.buttonTitle + ': '}
<input type="text" value={this.state.value} onChange={this.handleChange} />
</label>
<input type="submit" value="Submit"/>
</form>
);
}
}
しかし、私は、ユーザーにこれらの変更を表示するように見えることはできません。私はそれがRoot
フォームの変更でコンポーネントを再レンダリングし、オブジェクトを適切に更新しないことが原因であると思われます。コンソールが変更をrender
に記録しないので、これは当てはまります。私はperson
オブジェクトへの変更を示すために、私のRoot
コンポーネントを構築するに行くかどう
class Root extends React.Component {
render() {
console.log(person.name)
if (player.name == '') {
return(
<div>
<ChangePlayerProp buttonTitle="Name" />
</div>
);
}else {
return(
<div>
<p>{person.name}</p>
</div>
);
}
}
}
?上記
なぜmobxがお気に入りですか? – staticCoffee