Reactjs React Redux:组件或容器中的表单?
我在理解何时使用组件以及何时使用容器时遇到一些困难。我知道只有容器才应该连接到商店,所有(展示)组件都应该作为道具获得所有必要的输入 如果我想写,比方说,一个登录页面,我会创建一个Reactjs React Redux:组件或容器中的表单?,reactjs,redux,redux-thunk,Reactjs,Redux,Redux Thunk,我在理解何时使用组件以及何时使用容器时遇到一些困难。我知道只有容器才应该连接到商店,所有(展示)组件都应该作为道具获得所有必要的输入 如果我想写,比方说,一个登录页面,我会创建一个LoginPage.js来呈现一个UserForm.js。现在我不太明白如何从这里开始。我应该将UserForm连接到商店或登录页面,还是编写一个呈现LoginPage.js并连接到商店的LoginContainer.js更好 在最后一个例子中,当提交UserForm时,如何调度(异步,使用redux thunk)操作
LoginPage.js
来呈现一个UserForm.js
。现在我不太明白如何从这里开始。我应该将UserForm连接到商店或登录页面,还是编写一个呈现LoginPage.js
并连接到商店的LoginContainer.js
更好
在最后一个例子中,当提交UserForm时,如何调度(异步,使用redux thunk)操作。这必须从LoginPage完成,但LoginPage不知道任何提交,是吗
我希望这个问题不要太模糊或不清楚。
任何帮助都将不胜感激
干杯将您的
LoginPage.js
连接到redux存储并在其中呈现LoginForm.js
。将所有必要的数据作为道具传递(也可以传递函数)
例如—
您的LoginPage.js
将是这样的(我这里没有写完整的代码)
我希望这能对你有所帮助。
如果您在这里有任何查询帖子…那么我必须在onLogin()中发送一些登录请求操作?谢谢!你能简单地评论一下为什么这是推荐的方式吗?为什么直接连接LoginForm或为LoginPage创建一个额外的容器不是一个好主意?基本上你的组件应该是哑的。。。不知道redux存储/状态的。。。它们只是表象的组成部分。。。同样,你也可以用更合适的容器来做。。。您的页面将包含连接到路由的组件。。。然后这些将渲染容器。。。这是我个人喜欢的方式。。。最后,这取决于你想如何组织你的项目。。。。。
onLogin(loginData) {
// do what you wanna do on login and call routeActions to move another
page after successfull login
}
render() {
return(
<LoginForm login={this.props.login} onLogin={this.onLogin} />
);
}
const mapStateToProps = (state) => ({
login: state.login, // put your redux state here
});
export default connect(mapStateToProps)(LoginPage);
render() {
return (
//some html stuff here(login form)
// on submit call that method from props
// this.props.onLogin(pass login data here)
);
}