2017-12-15 2 views
0

Ich entschuldige mich im Voraus für die Formatierung (immer noch ein Newb auf diesem), und vielleicht für die dumme Frage (noch ein Newb auf diesem gesamten React-Ökosystem).Werfen eines SubmissionError der Redux-Form Ursachen Ungefangen (in Versprechen)

Ich habe vor kurzem redux-Form aufgenommen und seitdem habe ich versucht, es in der folgenden Art und Weise zu nutzen:

export const searchPermissions =() => { 
    return dispatch => { 
    Axios.get(`${URL}/findPermissions`) 
     .then(resp => { 
     console.log(resp.data); 
     dispatch({ type: PERMISSIONS_SEARCHED, payload: resp.data }); 
     }) 
     .catch(error => { 
     console.log(error); 
     throw new SubmissionError({ 
      _error: "Submission error!" 
     }); 
     }); 
    }; 
}; 

Und ich halte das nicht erfasste Fehler zu bekommen.

Beim Durchsuchen der Github-Datei von redux-form sah ich mehrere ähnliche Probleme, die schließlich durch das Hinzufügen der return-Anweisung gelöst wurden (was ich glaube, dass ich es richtig gemacht habe) und jetzt bin ich irgendwie verloren.

Vielen Dank im Voraus für jede Hilfe.

EDIT: Ich versuche, die Berechtigungen zu erhalten, um sie in 3 Kombinationsfelder anzuzeigen, sobald der Benutzer die Seite betritt. In der Komponente holen die Daten verwendete ich den folgenden Code haben:

componentWillMount() { 
    this.props.searchPermissions(); 
    } 
    render() { 
    return (
     <div> 
     <LayoutGroupForm 
      onSubmit={this.props.addLayoutGroup} 
      loadPermissions={this.props.loadPermissions} 
      visualizationPermissions={this.props.visualizationPermissions} 
      detailPermissions={this.props.detailPermissions} 
      resetForm={this.props.resetForm} 
     /> 
     </div> 
    ); 
    } 
} 
const mapStateToProps = state => ({ 
    loadPermissions: state.layoutGroup.loadPermissions, 
    visualizationPermissions: state.layoutGroup.visualizationPermissions, 
    detailPermissions: state.layoutGroup.detailPermissions 
}); 
const mapDispatchToProps = dispatch => 
    bindActionCreators(
    { 
     searchPermissions, 
     addLayoutGroup, 
     resetForm 
    }, 
    dispatch 
); 

Und auf meinem Minderer habe ich folgendes:

case PERMISSIONS_SEARCHED: 
     return { 
     ...state, 
     loadPermissions: action.payload.loadPermissions, 
     visualizationPermissions: action.payload.visualizationPermissions, 
     detailPermissions: action.payload.detailPermissions 
     }; 
+0

Dies ist, was Sie zu 'onSubmit' übergeben? Wo ist der Rest der Komponente? Erhalten Sie den Fehler oder die Daten in das Protokoll gedruckt? Mehr Informationen benötigt, um Ihr Problem zu diagnostizieren. –

+0

Weitere Infos hinzugefügt, danke für die Beantwortung und Entschuldigung, wenn dies zum Blödsinn führt – Victor

Antwort

0

Redux Form ist der Fehler erwartet wie der Fehler in einem kommen abgelehntes Versprechen. Versuchen Sie dies:

export const searchPermissions =() => { 
    return dispatch => { 
    return Axios.get(`${URL}/findPermissions`) 
// ^^^^^^-------------------------------------- Actually return the promise! 
     .then(resp => { 
     console.log(resp.data); 
     dispatch({ type: PERMISSIONS_SEARCHED, payload: resp.data }); 
     }) 
     .catch(error => { 
     console.log(error); 
     return Promise.reject(new SubmissionError({ 
//  ^^^^^^^^^^^^^^^^^^^^^^------------------------ Return rejected promise 
      _error: "Submission error!" 
     })); 
     }); 
    }; 
}; 
+0

Immer noch uncaught in promise = ( – Victor

+0

) Gibt es eine Möglichkeit, _error zu setzen, ohne einen SubmissionError zu werfen? Vielleicht mit einer bestimmten Aktion? – Victor

+0

Ja, mit [ 'stopSubmit()'] (https://redux-form.com/7.2.0/docs/api/actioncreators.md/#-code-stopsubmit-form-string-errors-object-code-). –

Verwandte Themen