繁体   English   中英

为什么我得到一个空数组?

[英]Why am I getting an empty array?

我正在为我的投资组合开发一个产品反馈应用程序(带有反应)并且遇到了一个意想不到的问题。 问题发生在我的 SuggestionDetails 组件中,我在其中使用 useParams 获取当前 ID 并根据该 ID 过滤掉当前产品。 使用预先存在的建议数组,一切正常并完美呈现,但是当我尝试呈现我创建并添加到数组的新建议时,问题就开始了。

这就是我得到当前建议的方式:

// I am getting the suggestions array through props

const { id } = useParams();

const [suggestion, setSuggestion] = useState(() => {
  const currentSuggestion =
    suggestions &&
    suggestions.filter((suggestion) =>
      suggestion.id === parseInt(id) ? suggestion : null
    );
  return currentSuggestion;
});

这是当前建议的返回值应该是什么(新建议在这里仍然没有创建):

预期结果

在这里,当我尝试过滤出新建议(最后一个元素)时,我得到一个空数组:

意外结果

我对这些东西还是有点陌生,不明白为什么会这样。 我没有在创建新建议并将其添加到当前 state 的地方添加代码,但我认为问题不存在,因为它已明确创建并添加到当前的建议请求列表中。

任何有关此的信息将不胜感激,谢谢。

问题是我使用parseInt而不是parseFloat来解析由Math.random()生成的 id

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM