私のプロジェクトには、ユーザーがページのリストを取得したり、新しいページを作成したりできるビューがあります。私のコードは次のようになります。
親コンポーネント (ページ)
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 から props として ID を受け取ります。これを「Create New Page」コンポーネントの Redux Form で利用できるようにして、ページを DB のプロジェクトに関連付けることができるようにします。
現在、プロジェクト ID をプロップとして「Create New Page」コンポーネントに渡し、非表示の入力フィールドに保存することで、プロジェクト ID を利用できるようにしています。
これは私の最初の Redux アプリケーションなので、これを正しく行っているか知りたいだけですか? よろしくお願いします。