2016-11-17 11 views
2

配列の更新された値を取得したいと思います。 console.logを実行すると、配列の長さだけが取得され、新しい値はビューに表示されません。ここで何が間違っていますか? js fiddle反応jsの配列値を取得する方法

getInitialState: function() { 
    return { 
    owner: "Martin Schwatz", 
    friends: ["Pietro", "Mike", "Shawn", "Bilbo"], 
    } 
}, 
updateFriends: function(friend) { 
    var a = this.state.friends.push(friend); 
    console.log(a); 
    this.setState({ 
    friends: a, 
    }); 
}, 
+0

@DavinTryonのために働く必要がありますが、どのように反応する開発者はなるだろう。この1

var Hello = React.createClass({ getInitialState: function() { return { owner: "Martin Schwatz", friends: ["Pietro", "Mike", "Shawn", "Bilbo"], } }, updateFriends: function(friend) { var newFriends = this.state.friends.concat(friend) this.setState({ friends: newFriends, }); }, click: function(){ this.updateFriends('VuVu') }, render: function(){ var listOfFriends = this.state.friends.map(function(item,i){ return <li key={i}>{item}</li> }.bind(this)) return <div> <button onClick={this.click}>Add VuVu</button> <hr/> {listOfFriends} </div> } }); ReactDOM.render( <Hello />, document.getElementById('container') ); 

を見てみましょう新しい値を配列に追加しますか? – vuvu

+0

'push'は配列の長さを返します。 –

答えて

1

は、それはあなた< fiddle>

+0

お越しいただきありがとうございました! – vuvu

1

push JSを反応させる変異配列の新しい長さを返します。したがって、現在のコードでは、aは配列ではありません。

代わりにこれを試してみてください:

updateFriends: function(friend) { 
    const newFriends = [ ...this.state.friends, friend ]; 
    this.setState({ 
    friends: newFriends, 
    }); 
}, 
+0

ありがとうございます! – vuvu

関連する問題