2016-04-30 72 views
0

我想渲染多个<User/><CustomForm/>它们都是无状态组件。 但是,如果我尝试修改其中一个<CustomForm />其他<CustomForm/ >也得到修改,因为它们都从商店共享相同的属性。我怎么能有多个独立的<CustomForm />渲染多个独立的REDX形式

<User> 
    <CustomForm user_id={user_id} /> 
</User> 
<User> 
    <CustomForm user_id={user_id}/> 
</User> 

我已经连接的形式是这样的:

let CustomForm = (props) => { 
    const { fields: {author, content}, handleSubmit } = props; 

    return (
     <form action=""> 
      .... 
     </form> 
    ) 

} 

CustomForm = reduxForm({ 
    form: `comment`, // I can't access props, i thought something like `comment_${props.user_id}` 
    fields: ['author', 'content'] 
})(CustomForm) 

export default CustomForm; 
+0

什么是'LeaderBoardComments'? –

+0

对不起,LeaderBoardComments是我项目中CustomForm的实际名称。我编辑了我的问题 –

+0

两个选项。商店需要有单独的对象来存储每个数据(不是最优的)。或者你需要为这些组件引入状态。我会推荐这个,因为组件的单个状态应该被用在组件本身中。 –

回答

0

你可以提供一个formKey道具组件:

<CustomForm 
    formKey={user_id.toString()} // needs to be a string. 
    user_id={user_id} 
/> 
1

不要使用formKey,因为它是会远。

传递给每一个reduxForm()配置参数可以作为道具进行传递,所以你可以做

<CustomForm form={`comment_${user_id}`}/>