2017-10-01 5 views
2

に反応します:入力要素は、私は非常に基本的なリアクトアプリケーションを構築するが、フォーム入力を備えたいくつかの問題を抱えてい

handleInputChange(event) { 
    this.setState({ 
     [event.target.name]: event.target.value 
    }); 
    } 

まだ入力欄に数字を入力できません。値を数字にしようとすると、何も起こらず、入力フィールドが正しく更新されません。助言がありますか? ありがとう

+1

正確 'handleInputChange'や 'addBook'を働いていない部分? – Shota

+0

handleInputChange –

答えて

2

あなたの本の状態はstate.book.titleとstate.book.authorあるので、あなたはそれはあなたがevent.targetで更新するstate.bookオブジェクトだとSETSTATEに指定する必要があります。これを試してみてください。値。

がうまくいけば、これはトリックを行います:

handleInputChange(event) { 
    this.setState({ 
    book: { 
    ...this.state.book, 
    [event.target.name]: event.target.value 
    }, 
    }); 
} 

あなたのネストされたブックオブジェクトの状態を更新し、あなたはそれのコピーを作成する必要がありますが、プロパティでは、新しい値に変更した設定をしたいです。これは、省略記号が役立つものです。ここ

さらに詳しい情報:How do I setState for nested array?

1

タイトル/著者プロパティはブックオブジェクト内にあります。あなたはstate.authorまたはstate.titleだけを参照しているようですが、state.book.titleまたはstate.book.authorを参照する必要があります。

handleInputChange(event) { 
    this.setState({ 
     book[event.target.name]: event.target.value 
    }); 
    } 
関連する問題