【发布时间】:2018-10-10 17:48:31
【问题描述】:
谁能告诉我如何将我们的常规dispatch Redux store 方法像道具一样直接发送到组件。请参阅下面的示例。
附:
我还看到了 Dan Abramov https://github.com/reactjs/redux/issues/916 使用 functional component 的这个例子,但没有找到答案有没有办法让它抛出 class component?
import React, { Component } from 'react';
import { connect } from 'react-redux';
function addData(data) {
type: "ADD_DATA",
data
};
class MainComponent extends Component {
constructor({ dispatch }, props) {
super(props);
}
handleUpdate = () => {
const hi = 'hi';
dispatch(addData(hi)); // error, could not find the method
}
render() {
const { data } = this.props;
console.log(this.props.store);
return (
<div>
<button onClick={this.handleUpdate}>Click me!</button>
{data}
</div>
)
}
}
export default connect()(MainComponent);
【问题讨论】:
-
你的代码应该已经有
dispatch作为 prop。您正在尝试登录store。 Dan 的示例适用于类组件,涵盖了您的用例。如果我正确理解您的问题 -
把
dispatch(addData(hi))改成this.props.dispatch(addData(hi)) -
azium 有你的答案。您正在尝试直接利用
dispatch,但它是props对象的属性。
标签: javascript reactjs redux react-redux