当前位置: 首页 > 知识库问答 >
问题:

ActionCreator和Actions可以与Redux混合吗?

曹骞仕
2023-03-14

我的经验主要是使用React Hooks

在一个新项目中,我必须使用React钩子

export const fetchCompanies: ActionCreatorThunk = () => {
  return function (dispatch, getState) {
    dispatch({ type: FETCH_COMPANIES_REQUEST });

    requests
      .get(
        `${requests.API_ROOT()}companies`,
        null,
        true
      )
      .then((response) => {
        dispatch({ type: FETCH_COMPANIES_SUCCESS, payload: response.data.companies });
      })
      .catch((error) => {
        console.error(error);
        dispatch({ type: FETCH_COMPANIES_FAILURE, payload: error.response });
      });
  };
};

这很有效。

我的情况是这样的:我需要一个动作来创建一个“空”公司,所以没有必要创建一个动作创造者。因此,我创建了一个这样的行动:

export const INIT_EMPTY_COMPANY: ActionType = 'INIT_EMPTY_COMPANY';
export type InitEmptyCompanyAction = { type: typeof INIT_EMPTY_COMPANY };

对于Action Creator,我从useffect内部调用它,如下所示:

dispatchRedux(fetchCompanies());

对于这个动作,我想我可以用一种类似于我总是用上下文来称呼动作的方式来称呼它,比如:

dispatchRedux({ type: InitEmptyServiceFormAction });

不幸的是,我遇到了这个流错误:“无法从值位置引用typeInitEmptyCompanyAction[1]”

我做错了什么?我如何解决这个问题?

共有1个答案

邹胜泫
2023-03-14

我想出来了,但我觉得自己很傻,因为我以前没有看到它。不知何故,我在脑海中意识到,INIT_EMPTY_COMPANY是一种类型。它确实有一个类型,即ActionType,但它本身不是一个类型。我的失败是尝试将其作为类型导入。

我想需要更多的睡眠!

 类似资料:
  • 我正在编写一些从第三方库扩展类的JUnit测试。超级类扩展了,所以根据定义,我的子类也扩展了。 在我的子类中,我用前缀编写测试方法,然后执行这些方法。 但是,出于许多原因,我们希望转移到JUnit4(其中一个原因是,我们不希望必须在测试方法前缀) 我尝试过使用JUnit4注释简单地编写新测试,但这些方法没有得到执行。 例如: 不扩展第三方测试类不是一个选项。(值得注意的是,Spring的又扩展了其

  • 是否可以使用来强制执行特定类型或字符串文本的存在? 示例: 或者它只是将PropTypes.bool视为它返回的任何字面值?在官方留档中找不到任何参考资料,所以我假设它不像我期望的那样工作。不过,这不会产生错误。

  • 问题内容: 遗言(现在的业力)很棒,角度场景也是如此。然而,将它们一起使用是一个挑战。在睾丸中有一个ANGENLAR-SCENARIO- ADAPTER,但这打破了简单的测试。如果您自己包含angular-scenario.js,Testacular将完全不进行任何测试。有人能正常运行吗? 角度场景适配器 我已经尝试过使用它进行琐碎的测试,但是我看到了一些奇怪的行为: 测试: 配置的正常行为: 输

  • 当以下转换在将RDD写入文件之前执行时,它们之间有什么区别? 聚结(1,洗牌=true) 合并(1,洗牌=假) 代码示例: 它与collect()相比如何?我完全知道Spark save方法将以HDFS风格的结构存储它,但我更感兴趣的是collect()和shuffled/non shuffled coalesce()的数据分区方面。

  • 问题内容: 在Java中,这样做并使用相同的锁定机制? 我的猜测是“不”,但我希望是错的。 例: 想象一下,线程1和线程2都可以访问: 线程1运行: 线程2运行: 假设线程1首先到达其部分,然后在线程1完成之前到达线程2:线程2将等待线程1离开该块,还是继续运行? 问题答案: 不,即使线程1 在同一线程上,线程2也可以。这是文档必须说的: 请注意,Lock实例只是普通对象,它们本身可以用作同步语句

  • 我使用Spring Boot和Spring Data JPA和Hibernate作为持久性提供程序。我已经使用扩展了我的接口。我有一个表的实体Bean列表。其中一些已经存在,一些不存在。 我想知道当我从我的服务层调用saveAll并传递此列表时会发生什么?