我的项目中有一个视图,用户可以在其中检索页面列表,也可以创建新页面。我的代码如下所示:
父组件(页)
class Pages extends Component {
render() {
return (
<div className="pages container">
<div className="pages">
<ul>
<li>
<CreateNewPage projectId={ this.props.params.id } />
</li>
<li>Map list of exisiting pages</li>
</ul>
</div>
</div>
);
}
}
子组件(创建新页面)
class CreateNewPage extends Component {
handleFormSubmit( { pageName, projectId } ) {
this.props.CreatePage( { pageName, projectId } );
}
render() {
const { handleSubmit, fields: { pageName, projectId } } = this.props;
return (
<form onSubmit={ handleSubmit( this.handleFormSubmit.bind( this ) ) } >
<label>Create new page</label>
<input { ...pageName } type="text" placeholder="Project name" />
<input { ...projectId } type="hidden" value={ this.props.projectId } />
<button type="submit">Create new page</button>
</form>
);
}
}
export default reduxForm({
form: 'createPage',
fields: [ 'pageName', 'projectId' ]
}, null, actions )( CreateNewPage );
Pages 从 React Router 接收一个 ID 作为道具,我想在我的“创建新页面”组件中将它提供给 Redux 表单,以便我可以将页面与我的数据库中的项目相关联。
我目前通过将项目 ID 作为道具传递给“创建新页面”组件,然后将其存储在隐藏的输入字段中,从而使项目 ID 可用。
这是我的第一个 Redux 应用程序,所以我只想知道我这样做是否正确?提前谢谢了。