2017-10-07 2 views
0

일반 양식이 있는데 사용자 입력을 처리하고 데이터를 저장하려고합니다. 끝점과 사용자 유형이 다르므로 다른 클래스를 사용하여 저장 함수를 전달해야합니다. 여기 내 저장 기능이 있습니다 userRole와내부에 매개 변수가있는 함수를 전달하십시오.

const save = async ({ data, props }) => { 
    const { match: { params: { userkey } } } = props; 
    const { name, selected } = data; 
    await rest.post(
    '/v1/distributor/role', 
    { key: name, permissions: selected }, 
    { 
     'x-distributor-key': userkey, 
    }, 
); 
}; 

export default compose(withProps({ save, getPermissions }))(NewRoles); 

다른 파일에서 온과 형태로 제출과 기능을 저장 형태 및 화재를 만들 : 여기

render() { 
    const { save } = this.props; 
    const { permissions } = this.state; 
    console.log(this.props); 
    return (
     <div className="col-md-4"> 
     <Form 
      submit={save({ data: this.state, props: this.props })} 
      change={this.change} 
      nameChange={this.nameChange} 
      permissions={permissions} 
     /> 
     </div> 
    ); 
    } 
} 

나는 양식을 저장 기능을 전달합니다. dataprops 매개 변수를 사용하여 클릭 저장 기능 호출을 제출할 때 예상됩니다. 하지만 기능 스타일에서 양식을 통과하지 기능, 로그 저장에 따르면,이 전에 해고 것 같다, 약속을 전달합니다

submit={save({ data: this.state, props: this.props })} 

어떻게 내가 그와 함께 제출 기능을 저장 전달할 수있는 매개 변수

답변

3

당신은하지 않습니다 전달 함수. 사실, 당신은 그 함수의 반환 값을 전달한다는 것을 의미하는 함수를 호출하고 있습니다 (이는 약속입니다). submit prop. 그래서 대신 함수를 전달하십시오.

submit={save({ data: this.state, props: this.props })}

submit={() => save({ data: this.state, props: this.props })}

에 변경
관련 문제