私はactions
を保持するストアを持っています。これらのアクションは新しいものが追加されるたびに繰り返されると考えられます。React componentWillReceivePropsはredux状態の更新時にトリガーしない小道具を受け取ります
MessageView
という親にあるMessageListView
というコンポーネントがあります。 socketActions.queue
配列に新しいアクションが追加されると、componentWillRecieveProps
がトリガーされると考えられますが、そうではありません。だから
function mapStateToProps(state){
console.log(state, "State inside messagelistview.js")
return {
actionsQueue: state.socketActions.queue,
latestAction: state.socketActions.latestAction
}
};
const mapDispatchToProps = (dispatch) => {
return bindActionCreators({ completeAction }, dispatch);
};
export default connect(
mapStateToProps,
mapDispatchToProps
)(MessageListView);
私は新しいADD_ACTION
アクションをディスパッチ私の状態の更新&を:
/* Reducer */
const initialState = {
queue: [{
type: 'alert',
action: 'alert',
completed: false, // Set to true or just delete this object when the action has been completed
data: {
message: "the data object dynamically changes based on the type"
}
}]
};
export default (state = initialState, action) => {
switch (action.type) {
case ADD_ACTION:
let queue = state.queue
// action.data['completed'] = false
queue.push(action.data)
console.log("Just updated queue", action.data)
return {
...state,
queue: queue,
latestAction: new Date()
}
私のコンポーネントは、このような店舗にまで接続されている。ここで
は私の減速は、次のようになりますredux-logger
は、彼らが同じであることを私に伝えている新しい古い状態を印刷しますか?。
latestActionの値&キュー配列を変更した後、なぜこれを行うのかわかりません。これはなぜコンポーネントwillRecievePropsが動作していないのですが、私は状態が同じ理由を理解できませんか?
、あなたはもう、これらの問題に実行しない傾向にあります。また、私の意見では、immutable.jsのオブジェクトを変更することは、常にdeconstructingとリテラルを使用するよりもきれいに見えます。 – stinodes