私の質問は少しダムに聞こえるかもしれませんが、私はまだ反応と還元を学んでいます。 私は私のアプリでuser
を持っており、これが私のユーザー状態のスキーマです:ここでreduxの状態で別のエントリを作成せずにサブレデューサーを結合する方法
user : {
error,
isAuthed,
authToken,
isFetching,
currentRole,
roles : ['role', 'role'],
paymentsInfo: [{invoice}, {invoice}, {invoice}]
}
あるユーザーのための私の私の減速:
function user(state = initialUserState, action) {
switch (action.type) {
case 'FETCHING_USER': {
return {
...state,
isFetching : true
}
}
case 'FETCHING_USER_ERROR': {
return {
...state,
isFetching : false,
error : action.error
}
}
case 'FETCHING_USER_SUCCESS': {
return {
// update user state
}
}
// payments reducer
case 'FETCH_PAYMENT_DETAILS': {
return {
...state,
payments : payments(state.payments, action)
}
}
case 'FETCH_PAYMENT_SUCCESS': {
return {
...state,
payments : payments(state.payments, action)
}
}
default:
return state
}
}
私は支払いの異なるファイルに減速し、最後の3例を維持していますuser
に減速はpayments
減速のアクションにマッチする:
function payments(state = initialPaymentState, action) {
switch (action.type) {
case 'FETCH_PAYMENT_DETAILS' : {
return {
...state,
isFetching : true
}
}
case 'FETCH_PAYMENT_ERROR' : {
return {
...state,
isFetching : false,
error : action.error
}
}
case 'FETCH_PAYMENT_SUCCESS' : {
return {
...state,
isFetching : false,
error : '',
invoices : action.paymentDetails
}
}
default:
return state
}
}
私は01のための別々の状態を維持しておりませんですが、APIから支払いデータを受け取ったときは、user
状態で更新する必要があります。今私の質問は、payments
あなたはどういう意味ですか?それらを一緒に組み合わせますか? –
@ Radio-私は、 'payments'メソッドのケースを' user'リデューサーに書いておきたいと同時に、両方を別々のファイルに入れたいと思います。 'payments'はmainに新しいインスタンスを作成すべきではありません状態ツリーは 'user'の一部でなければなりません(スキーマ参照) –