2017-07-14 43 views
1

我有以下的反應成分函數調用。功能無法可能未定義的值被稱爲

//@flow 

import React from 'react'; 
import { connect } from 'react-redux'; 
import { submit } from 'redux-form'; 
import { Button } from 'ds-component-library'; 
import styles from './ApplicationLayout.scss'; 
import cs from 'classnames'; 

const RemoteSubmitButton = ({ 
    dispatch, 
    form 
}: { 
    dispatch: void, 
    form: string 
}) => 
    <Button 
    primary 
    className={cs(styles['button-next'])} 
    onClick={() => dispatch(submit(form))} 
    > 
    Next 
    </Button>; 

RemoteSubmitButton.displayName = 'RemoteSubmit'; 

export default connect()(RemoteSubmitButton); 

運行流程時,我得到了以下錯誤:

onClick={() => dispatch(submit(form))} 
         ^^^^^^^^^^^^^^^^^^^^^^ function call. Function cannot be called on possibly undefined value 
onClick={() => dispatch(submit(form))} 
         ^^^^^^^^ undefined 

回答

1

的解釋是不樂意與您定義的事實調度的類型在解構時是無效的,它假定它可能是未定義的,但是,當點擊按鈕時你總是調用該函數。

一個可能的解決方案可能是將調度調用提取到一個函數,並檢查調度是否不先定義。

0

如果我沒有理解錯誤消息,該問題可能是調用submit(form)可能返回undefined這將導致一個問題,因爲dispatch函數需要被稱爲機智一個非未定義的說法。

submit的註釋是錯誤的,或者您需要檢查其返回值,然後將其傳遞到dispatch

相關問題