2
次のコードを検討してください。私は、テキストフィールドのテキストの最後の文字をlastChar
という状態で保存しておきたい。これを行うには、次のコードを実行しましたか?例えばReact:状態更新の遅延
define(["react","react-keydown"], (React,keydown) => {
var TypingContainer = React.createClass({
getInitialState: function() {
return {text: '',lastChar:''};
},
handleChange: function(e) {
console.log('lastChar typed is:'+ e.target.value.slice(-1));
this.setState({lastChar: e.target.value.slice(-1)});
console.log('lastChar in state is:'+ this.state.lastChar);
}
,
render: function() {
return(
<div>
{this.props.candidateWord}
{this.props.message}
<input
className="typing-container"
value={this.state.message}
onChange={this.handleChange}
/>
</div>
);
}
})
return TypingContainer;
});
は、ユーザタイプhello
が、私はその間lastChar
o
として両方e.target.value.slice(-1)
とthis.state.lastChar
同じで最後の文字を見ることが予想される場合は、lastCharは常に他の言葉でl
を示し正確な値の前に1つのchar?
どうしてですか?どのように私はそれを修正することができますか?
真。あなたは 'this.setState({lastChar:e.target.value.slice(-1)}、function(){console.log(this.state.lastChar)}のようなsetStateコールバック関数で変更された値にアクセスすることもできます。 bind(this)); ' –
指してくれてありがとう。ここでこれを更新します。 – Ved