首页 > 解决方案 > 有没有办法通过道具传递动作?使用 react-redux 制作可重用的组件

问题描述

我想制作一个动态加载动作和状态的组件,以便我可以在代码的其他部分重用它。

我正在尝试这种方式,但该操作在发送到组件之前触发:

function ClientsHeader(props) {
    const action = Actions.searchClients();
    return (
        <SearchHeader data={data} campoPesquisa={campoPesquisa} action={action}/>
    );
}    
export default ClientsHeader;

关于儿童:

function SearchHeader(props) {
  const dispatch = useDispatch();
  const action = props.action;

  return;
  <div className="flex flex-1 w-full items-center justify-between">
    <Input
      placeholder="Search"
      onChange={event => dispatch(action(event))}
    />
  </div>;
}

有没有办法用变量调用函数名?因为那会解决这个问题。

请不要对我的愚蠢无礼,我是新手:D

标签: javascriptreactjsecmascript-6react-redux

解决方案


错误来自该行const action = Actions.searchClients();

这实际上调用了函数searchClients

应该是const action = () => Actions.searchClients();


推荐阅读