2017-04-26 4 views
1

Gibt es eine gute Praxis für die Kombination mit connect von react-redux als Dekorateur mit redux-saga?Wie @connect Decorator mit Redux-Saga arbeiten?

import React from 'react'; 
import { connect } from 'react-redux' 

@connect(({ data }) => ({ data }), require('../models/effects').default) 
export default class User extends React.Component { 
    onClick() { 
    console.log('on click.'); 
    // how to make redux-saga work here? 
    this.props.action1(); 
    } 
} 

Antwort

2

redux-Saga dreht redux actions in Nebenwirkungen, während reagieren-redux die connect zieht Felder aus dem store und setzt sie als Requisiten zu Ihrer Komponente.

Um es anders auszudrücken, müssen Sie Ihre Komponente nicht direkt mit redux-saga verbinden. Erstellen Sie stattdessen Aktionen, wie Sie dies tun würden, wenn Sie nicht redux-saga verwenden würden. Fügen Sie dann Sagas hinzu, die auf diese Aktionen reagieren und die notwendigen Nebenwirkungen ausführen, um neue Aktionen zu erzeugen, wenn diese Nebenwirkungen vollständig sind. Ihre Reduzierer sollten mit diesen letzten Aktionen umgehen, um den Status zu aktualisieren, der connect auslöst und Ihre Komponenten aktualisiert.