是在组件内部使用 mapDispatchToProps
来调用 Action 更有效,还是在 Action 创建器中使用 store.dispatch
更有效?
mapDispatchToProps
示例:
// Component
import React from 'React';
import { connect } from 'react-redux';
import { defaultAction } from './actions';
class MyComponent extends Component {
onClickHandler() {
this.props.dispatch(defaultAction());
}
render() {
return (<div onClick={this.onClickHandler.bind(this)} />);
}
}
function mapDispatchToProps(dispatch) {
return { dispatch };
}
export default connect(mapDispatchToProps)(MyComponent);
// Actions
import { DEFAULT_ACTION } from './constants';
export function defaultAction() {
return {
type: DEFAULT_ACTION,
};
}
store.dispatch()
示例:
// Component
import React from 'React';
import { connect } from 'react-redux';
import { defaultAction } from './actions';
class MyComponent extends Component {
onClickHandler() {
defaultAction();
}
render() {
return (<div onClick={this.onClickHandler.bind(this)} />);
}
}
export default MyComponent;
// Actions
import { DEFAULT_ACTION } from './constants';
import store from './store';
export function defaultAction() {
store.dispatch({
type: DEFAULT_ACTION,
});
}
我的猜测是,使用 mapDispatchToProps
而不是导入整个 ./store
来调度操作会更有效。
最佳答案
通常建议使用通过 mapDispatchToProps
提供给您的 dispatch
,而不是将您的 action creator 方法耦合到您的商店单例。 Here's some in depth discussion about it.
关于javascript - mapDispatchToProps 与 store.dispatch(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41107067/