2017-03-23 3 views
0

소품이 하위 구성 요소로 전달되지 않습니다. 나는 다음과 같은 상위 구성 요소의 NewProject 있습니다소품이 하위 구성 요소로 전달되지 않습니다. - redux-form/react

Uncaught Error: You must either pass handleSubmit() an onSubmit function or pass onSubmit as a prop 
    at checkSubmit (eval at ./node_modules/redux-form/lib/reduxForm.js (http://localhost:3000/main.js:5694:1), <anonymous>:133:11) 
    at Form.submit (eval at ./node_modules/redux-form/lib/reduxForm.js (http://localhost:3000/main.js:5694:1), <anonymous>:540:74) 
    at Object.ReactErrorUtils.invokeGuardedCallback (webpack:///./~/react-dom/lib/ReactErrorUtils.js?:70:16) 

오류가 발생 : 내가 제출 버튼을 누르면

... 

export class NewProject extends React.PureComponent { 

    constructor(props) { 
    super(props); 
    this.saveProject = this.saveProject.bind(this); 
    } 

    saveProject = (values) => { 
    console.log(values); 
    } 

    render() { 
    return (
     <div> 
     <div style={{fontSize: 14}} className="container"> 
      <NewProjectForm 
      onSubmit={this.saveProject} 
      /> 
     </div> 
     </div> 
    ); 
    } 
} 
... 

그리고 하위 구성 요소 NewProjectForm

... 
const NewProjectForm = (props) => { 
    const { 
    handleSubmit, 
    pristine, 
    reset, 
    submitting, 
    locale 
    } = props; 

    console.log(props); 

    return (
     <form onSubmit={handleSubmit}> 
      <RaisedButton labelColor='#ffffff' type="submit" backgroundColor='#86BFC4' label="Save" /> 
     </form> 
    </Form> 
) 
} 

export default reduxForm({ 
    form: 'newProjectForm' 
})(NewProjectForm); 

을, 나는 다음과 같은 오류가 발생합니다 소품이 전달되지 않았기 때문에 그 이유는 무엇입니까? 내가 무엇을 놓치고 있습니까? 여기

enter image description here

답변

0

당신은 소품 onSubmit 보내 handleSubmit를 사용하려고 ...을 console.log의 출력

const { 
    handleSubmit, // change to onSubmit 
    pristine, 
    reset, 
    submitting, 
    locale 
    } = props; 
0

그 이름 불일치 문제 :

<NewProjectForm 
    onSubmit={this.saveProject} 
/> 

onSubmit D handleSubmit로 사용 :

const { 
    handleSubmit, // change this to onSubmit 
    pristine, 
    reset, 
    submitting, 
    locale 
    } = props; 
+0

우리는 심지어 같은 댓글을 쓰셨) – Andrew

+0

앤드류 하하 좋은, 동일한 솔루션 : –

+0

이상적으로, 당신은 SO 카르마 포인트를 분할한다. :-) –

관련 문제