道具未定义(组件更新)

时间:2020-10-10 22:30:34

标签: javascript reactjs

我有一个简单的博客(react / redux)(仅前端部分)。带有用户注册和文章。并在尝试向组件发送道具时卡住了。这可能是一个愚蠢的问题,在这里阅读了相同的问题-如何将道具传递给组件,尝试这样做,但是我的道具始终未定义。我应得的东西我错过了重要的事情,无法理解。可能与承诺有关。尝试做5天-没有结果。可能只是一些愚蠢的错误,而我抓不住它。如果您对React有很好的了解,请Plz帮助。

主要问题-“ ArticlesList”组件道具未定义。我在服务器响应中获得了文章列表。但是在页面上它仍然是“正在加载”。

另一个问题-我应该使用react钩子而不是类吗?使用钩子编写代码会更容易吗?

这是代码: https://codesandbox.io/s/bold-currying-f27yh

2 个答案:

答案 0 :(得分:1)

我简要地浏览了您的代码,问题是渲染MainView组件时实际上并没有传递道具。因此,当您尝试将这些道具传递到ArticlesList组件时,它们将保持不确定状态。

您需要做的是像这样渲染props时传递那些MainView

<MainView 
  tab={tab} 
  loading={loading}
  articles={articles}
  pager={pager}
  articlesCount={articlesCount}
  currentPage={currentPage}
/>

在上面定义这些道具的值的地方,我不知道。我无法浏览所有代码,但这是一个很好的起点。

答案 1 :(得分:1)

您需要添加articleList减速器:

export default (history) => combineReducers({
    articlesList, // you are missing this
    authorization,
    mainstate,
    router: connectRouter(history)
});