变量值未在函数中更新

时间:2019-09-16 15:17:47

标签: javascript reactjs redux

我在无状态React组件中使用onClick处理程序。
在div上触发click事件时,它会触发loadMore操作,该操作使用redux操作从REST API中获取更多数据。

count = 6;

var loadMore = e => {
 getArticlesComments(article.slug, count, count + 2);
 count = count + 6;
};

我的问题是count由于要执行redux操作而没有更新。如果我将其删除,则count正在正确更新。

为什么redux动作(可以正常工作)阻止count更新?

谢谢

2 个答案:

答案 0 :(得分:0)

您需要将您的计数放入状态,然后更新状态

答案 1 :(得分:0)

反应仅对您的状态或道具的更新做出反应。从您共享的代码来看,count似乎不是任何状态的一部分。如果要在计数更改时更新视图,则计数需要处于一个状态内。您提到您的组件是无状态的,所以您需要:

  1. 在“ loadMore”事件中,将组件转换为常规组件并定义state = { count: 0}并用setState更新。 See example
  2. 使用countStateToProps将计数移动到redux状态并将其映射到属性,最后,通过redux reducer而不是在'loadMore'事件中更新计数。参见updating state in redux

编辑:#2 Change state onClick React+Redux

的更好示例