我仍然會在容器中將此功能作爲道具傳遞下去 - 而不是在mapDispatchToProps
中。
如:
// SmartComponent.js
import React, { Component } from 'react'
import DumbComponent from '/path/to/DumbComponent'
export class SmartComponent extends React.Component {
constructor(props) {
super(props);
this.handleOnClick = this.handleOnClick.bind(this);
}
handleOnClick(params) {
// do whatever you need to do here
}
render() {
return (
<DumbComponent handleOnClick={this.handleOnClick} />
);
}
};
export default SmartComponent;
// DumbComponent.js
import React from 'react'
import Button from '/path/to/button'
export const DumbComponent = (props) = {
const { handleOnClick } = props;
return (
<Button onClick={handleOnClick} />
);
}
export default DumbComponent;
我也許應該補充一點,我通常會構建它讓我有高於此另一個層面連接到商店 - 像ContainerComponent
例如 - 這通常是路線的視圖。這就是爲什麼我沒有把這個SmartComponent
連接到商店。你可以做到這一點,但。