2016-10-26 11 views
0

アクションクリエーターへのデフォルトの引数を持つという望ましくない副作用はありますか?また、アクション作成者の中でObject.assignを使用していますか?Reduxアクション作成者のデフォルトの引数

たとえば、私たちはnotify()というアクションクリエイターがあり、私たちの店に通知を作成します。

これらの通知にデフォルトの引数が必要ですが、これを処理する別の機能のcreateNoticeがあります。

私たちの行動は、次のようにルックスを作成します。

export function notify(notification) { 
    return { 
    type: ADD, 
    notification, 
    }; 
} 

そして、我々のcreateNoticeは次のようになります。私は本当に嫌いはcreateNoticenotifyをインポートするプラスのすべてのために派遣するnotifyをバインドする必要が

export function createNotice(title = '', message, level = 'info', settings = {}) { 
    return merge({}, { 
    title, 
    message, 
    key: (new Date).getTime(), 
    action: 'Dismiss', 
    dismissAfter: 5000, 
    className: level, 
    }, settings); 
} 

これを使用して以下を実行するコンポーネント:

<Button onClick={() => nofity(createNotice('Something Happened', 'I think it worked!'))} /> 

イドではなく、次のようなもの:のようなアクションの作成者を有するスルー

<Button onClick={() => nofity('Something Happened', 'I think it worked!')} /> 

export function notify(notice) { 
    return { 
    type: ADD, 
    createAction(notice), 
    }; 
} 

しかし、それは私にはReduxのアンチパターンのように感じていますか?

答えて

0

createNoticeの機能は、実際にはnotifyのヘルパー機能です。

あなたの最初のアプローチは、あなたのコンポーネントがcreateNoticeを意識する必要がないため、私には意味がありません。

あなたの2番目のアプローチは私がやることです。しかし、...createNotice(notice)を広げたり、名前をつけたりしたい場合があります

関連する問題