2016-10-24 10 views
3

私はreduxストアにインスタンスを格納したいクラスがいくつかあります。reduxストアにクラスインスタンスを格納する

クラスはシングルトンであり、クラスごとにインスタンスが1つしかありません。
そして私はそれらをクラスの名前(あるいはユニークなもの)をキーとして状態に保存します。

私はそれらをうまく保存できますが、コンポーネントは再レンダリングしていません。

(それはシングルトンだから)私は常にインスタンスを変異していますので、それはだと思う

どのように私はReduxの中で、クラスのインスタンスを使用/保存する必要がありますか?
singletoneインスタンスの場合はどうなりますか?

  • 編集

私はsingletoneインスタンス内の無地のオブジェクト/配列を持っています。
ああ、そこにも機能(アクションクリエイター)があります。
(Reduxの-サンクによって実行される)

ことがベストプラクティス問題、あるいはない場合実は、私は店でactionCreatorの名前を格納し、名前を持つことができると思います - >どこかの外actionCreatorマップ店舗。アクションの作成者の

一つ、それはシングルトンだという事実は、それが可変だと私に提案し、そしてあなたの減速はそれを直接変更する代わりに、アクションに応じて、それの新しいインスタンスを投影していることを

function datetimeStockExtrasForDateRange(date) { 

    return function (dispatch, getState) { 

    const state = getState() 
    const { calendar } = state 
    const calendarPeriod = calendar.calendarPeriod 

    let visibleDates = calendarUtil.visibleDates(date, calendarPeriod) 

    const filteredDates = visibleDates.filter((date) => { 
     var dateFormatted = moment(date).format('YYYY-MM-DD') 
     if (state.dates[dateFormatted] && state.dates[dateFormatted].available_datetime_stock_extras_fetched) { 
     return false 
     } 
     return true 
    }) 

    if (!_.isEmpty(filteredDates)) { 
     const { datetime_stock_rule_set_id } = state.calendar 
     const date_start = filteredDates[0] 
     const date_end = filteredDates[filteredDates.length - 1] 
     dispatch(
     DatetimeStockExtra.fetchAvailableDatetimeStockExtrasForDateRangeAction(
      datetime_stock_rule_set_id, 
      date_start, 
      date_end 
     ) 
     ) 
    } 
    } 
} 
+0

コードサンプルはありますか? –

+0

シングルトンには何がありますか? – Crysfel

+0

@Crysfel質問を更新しました – eugene

答えて

1

を下回っています。これはreduxの悪用であり、react-reduxが変更を認識しないようにします。

関連する問題