我正在阅读Redux库的文档,它有这个例子,
除了读取状态之外,容器组件还可以调度操作.以类似的方式,您可以定义一个调用的函数
mapDispatchToProps(),该函数接收dispatch()方法并返回您想要注入到表示组件中的回调道具.
这实际上没有任何意义.dispatch()你已经拥有了为什么需要mapDispatchToProps?
他们还提供了这个方便的代码示例:
const mapDispatchToProps = (dispatch) => {
return {
onTodoClick: (id) => {
dispatch(toggleTodo(id))
}
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以用非专业人士的术语解释这个功能是什么以及为什么它有用?
我试图理解react-redux的连接方法,以及它作为参数所采用的函数.特别是mapStateToProps().
我理解它的方式,返回值mapStateToProps将是一个从状态派生的对象(因为它存在于商店中),其键将作为道具传递给目标组件(应用组件连接).
这意味着目标组件所使用的状态与存储在商店中的状态可能具有完全不同的结构.
问:这样可以吗?
问:这是预期的吗?
问:这是反模式吗?
当我使用redux-formv7时,我发现没有办法设置字段值.现在在我form,我有两个select组件.当第一个select组件值发生变化时,第二个值将清晰.
在类渲染中:
<div className={classNames(style.line, style.largeLine)}>
<div className={style.lable}>site:</div>
<div className={style.content}>
<Field
name="site"
options={sites}
clearable={false}
component={this.renderSelectField}
validate={[required]}
/>
</div>
</div>
<div className={classNames(style.line, style.largeLine)}>
<div className={style.lable}>net:</div>
<div className={style.content}>
<Field
name="net"
options={nets}
clearable={false}
component={this.renderSelectField}
validate={[required]}
warning={warnings.net}
/>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
现在我添加select更改挂钩,如何更改其他select值
renderSelectField = props => {
const {
input,
type,
meta: { touched, error },
...others
} = props
const { onChange } = input
const _onChange = value => {
onChange(value)
this.handleSelectChange({ …Run Code Online (Sandbox Code Playgroud) 我是新来的redux,react和parceljs。我目前正在通过执行redux tutorial. 完成parceljs工作后,当我转到浏览器时,控制台上出现此错误:
Uncaught TypeError: (0 , _reactRedux.connect) is not a function
现在的代码是
import { connect } from 'react-redux';
const AddTodo = ({dispatch}) => {
.
.
.
}
export default connect()(AddTodo)
Run Code Online (Sandbox Code Playgroud)
我变了:
import { connect } from 'react-redux';
到:
import { connect } from 'redux';
并给了我基本相同的错误。
在这种情况下我该怎么办?
我检查了文档和问题,我发现的唯一问题connect()是您不能将它用作装饰器,仅此而已。我是否遗漏了一些我还不知道的东西?
(对不起,我的英语语法不好,不是我的母语)