2017-12-15 12 views
0

서식에 대해 사과 드리며 어리석은 질문 일 수도 있습니다 (이 전체 React 에코 시스템에서는 아직 newb입니다).redux-form의 SubmissionError를 던지면 Uncaught가 발생합니다. (약속 있음)

최근 REDUX 형태를 주운, 그 이후로 나는 다음과 같은 방법으로 그것을 사용하려고했습니다 :

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!" 
     }); 
     }); 
    }; 
}; 

을 그리고 난 포착되지 않은 오류가 계속.

redux-form의 github을 통해 검색 한 결과 몇 가지 유사한 문제가 발생하여 return 문을 추가하여 해결되었지만 (이제는 제대로했다고 생각합니다) 이제는 다소 분실했습니다.

미리 도움을 청하십시오.

편집 : 사용자가 페이지에 들어가 자마자 3 콤보 상자에 표시 할 수있는 사용 권한을 가져 오려고합니다. 나는

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 
); 

그리고 내 감속기에

다음과 같습니다 :

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

이것은'onSubmit'에 전달하는 것입니까? 나머지 구성 요소는 어디에 있습니까? 로그에 오류나 데이터가 인쇄되고 있습니까? 문제를 진단하는 데 더 많은 정보가 필요합니다. –

+0

더 많은 정보를 추가하고 죄송합니다. 바보 일 가능성이 높습니다. – Victor

답변

0

돌아 오는 형태가의 오류로 오는 오류를 기대 나는 다음과 같은 코드가 데이터를 가져 오는 데 사용되는 구성 요소에서 약속을 거부했다. 이것을 시도하십시오 :

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

약속이 잡히지 않은 상태로 계속 남았습니다. = ( – Victor

+0

SubmissionError를 던지지 않고 _error를 설정하는 방법이 있습니까? 특정 작업을 지정하여 처리 할 수 ​​있습니까? – Victor

+0

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