我试图找出如何使用反应,终极版和打字稿在一起时减少样板数量。 这可能是你不能在这种情况下,但想看看是否有人有想法。
我目前有分派该切换的菜单,在显示和隐藏它之间交替的动作的部件。 要做到这一点,我定义我的课是这样的(涉及国家省略代码,注重行动的调度):
import {Action, toggleMenu} from "../../actions/index";
interface IConnectedDispatch {
toggleMenu: (isActive: boolean) => Action;
}
class HeaderMenu extends React.Component<IOwnProps & IConnectedState & IConnectedDispatch, any> {
constructor(props: IOwnProps & IConnectedState & IConnectedDispatch) {
super(props);
this.toggleMenuState = this.toggleMenuState.bind(this);
}
public render() {
return (
<button className={buttonClass} onClick={this.props.toggleMenu(this.props.isActive)} type="button">
</button>
);
}
}
const mapDispatchToProps = (dispatch: redux.Dispatch<Store.All>): IConnectedDispatch => ({
toggleMenu: (isActive: boolean) => dispatch(toggleMenu(isActive))});
的动作被定义为
export function toggleMenu(isActive: boolean): Dispatch<Action> {
return (dispatch: Dispatch<Action>) => {
dispatch({
isActive,
type: "TOGGLE_MENU",
});
};
}
这感觉就像它应该是可以减少的代码来实现在这里我的目标所需要的量。 作为新的反应,终极版和打字稿我看不出究竟如何,但。 特别是它给人的感觉非常的重复写操作名称,toggleMenu,一遍又一遍。 例如,在这部分两次:
const mapDispatchToProps = (dispatch: redux.Dispatch<Store.All>): IConnectedDispatch => ({
toggleMenu: (isActive: boolean) => dispatch(toggleMenu(isActive))});
任何建议表示赞赏!