- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个简单的工作 React-redux 应用程序,我试图更好地组织到不同的文件夹中,如下所示:
component1.js
import React from "react";
class Presentational extends React.Component {
constructor (props){
super(props);
this.state= {
input:''
}
this.handleChange= this.handleChange.bind(this)
this.submitMessage= this.submitMessage.bind(this)
}
handleChange (event) {
this.setState ({
input:event.target.value
})
}
submitMessage () {
this.props.submitNewMessage(this.state.input);
this.setState({
input:''
})
}
render(){
return (
<div>
<h2> Type a new Message </h2>
<input value={this.state.input} onChange={this.handleChange}/>
<br/>
<button onClick={this.submitMessage}>Submit</button>
<ul>
{this.props.messages.map((message,idx) =>{
return <li key={idx}>{message}</li>
})}
</ul>
</div>
)
}
}
export default Presentational;
container1.js
import { connect } from 'react-redux'
import { addMessage } from '../actions'
import Presentational from '../components'
const mapStateToProps = state => {
return {
messages: state
}
}
const mapDispatchToProps = dispatch => {
return {
submitNewMessage :message => {
dispatch(addMessage(message))
}
}
}
export default connect(mapStateToProps,mapDispatchToProps)(Presentational)
虽然应用程序在所有 react-redux 代码都在 1 个文件中的原始应用程序中运行,但在将文件的逻辑分离到不同的文件夹后,应用程序崩溃并出现以下错误:
TypeError: Cannot read property 'map' of undefined
Uncaught TypeError: this.props.submitNewMessage is not a function
在我看来,container1.js 代码没有成功地为 component1.js 中的 Presentational 组件“将状态映射到 Prop ”和“将调度映射到 Prop ”。
知道我做错了什么吗?
最佳答案
您必须使用 container1.js
文件而不是 component1.js
文件,因为 component1 没有 Redux props,但 container1 有。
因此,您应该更改导入以使用 container1 文件或将 Redux prop 映射放入 component1.js
文件中
关于javascript - react 终极版 : Problem with passing props and dispatch from container to component,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59553485/
意识到这可能是主观的,具体取决于手头的项目,我正在寻找构建 VS (Visual Studio) 解决方案的“最佳实践”方法。 请随意编辑此内容、评论您认为可能不正确的内容、提出替代方案等。我很高兴看
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visi
我维护和协作一些用 CommonJS 编写的 JavaScript 模块,这些模块需要高质量的 UMD 包装器。 依赖项来自 npm 但至少有 CommonJS 和 AMD 支持(或者我可以添加它)。
Intellisense 在我的 VS 上运行得非常糟糕...... 当我用 C++ 编写代码时,它可以 100% 正常工作,直到我开始使用模板,然后它才会完全停止工作,停止检测错误并且不会在所有情况
Microsoft网站具有冲突的信息: http://msdn.microsoft.com/en-us/library/ms182372.aspx ...使用Visual Studio Premium
我是一名优秀的程序员,十分优秀!