【发布时间】:2019-08-23 02:14:32
【问题描述】:
我正在将一些来自 redux 状态的上下文数据(使用钩子)传递给我当前的组件。 我只需要从 redux 状态中找到一个特定值并放入本地组件的状态。
我正在使用 findIndex。
虽然根据我的 console.log 应该找到匹配项,但它仍然不断返回 -1。
我已经浏览了几个小时的 stackoverflow 和谷歌搜索并尝试了每个示例 + 尝试操纵它,但没有运气。
来自 Redux 的状态(列表)状态,
[
{
userId: 2,
id: 11,
title: 'et ea vero quia laudantium autem',
body: 'delectus reiciendis molestiae occaecati non minima eveniet qui voluptatibus\naccusamus in eum beatae sit\nvel qui neque voluptates ut commodi qui incidunt\nut animi commodi'
},
{
userId: 2,
id: 12,
title: 'in quibusdam tempore odit est dolorem',
body: 'itaque id aut magnam\npraesentium quia et ea odit et ea voluptas et\nsapiente quia nihil amet occaecati quia id voluptatem\nincidunt ea est distinctio odio'
},
{
userId: 2,
id: 13,
title: 'dolorum ut in voluptas mollitia et saepe quo animi',
body: 'aut dicta possimus sint mollitia voluptas commodi quo doloremque\niste corrupti reiciendis voluptatem eius rerum\nsit cumque quod eligendi laborum minima\nperferendis recusandae assumenda consectetur porro architecto ipsum ipsam'
},
{
userId: 2,
id: 14,
title: 'voluptatem eligendi optio',
body: 'fuga et accusamus dolorum perferendis illo voluptas\nnon doloremque neque facere\nad qui dolorum molestiae beatae\nsed aut voluptas totam sit illum'
},
{
userId: 2,
id: 15,
title: 'eveniet quod temporibus',
body: 'reprehenderit quos placeat\nvelit minima officia dolores impedit repudiandae molestiae nam\nvoluptas recusandae quis delectus\nofficiis harum fugiat vitae'
},
{
userId: 2,
id: 16,
title: 'sint suscipit perspiciatis velit dolorum rerum ipsa laboriosam odio',
body: 'suscipit nam nisi quo aperiam aut\nasperiores eos fugit maiores voluptatibus quia\nvoluptatem quis ullam qui in alias quia est\nconsequatur magni mollitia accusamus ea nisi voluptate dicta'
},
{
userId: 2,
id: 17,
title: 'fugit voluptas sed molestias voluptatem provident',
body: 'eos voluptas et aut odit natus earum\naspernatur fuga molestiae ullam\ndeserunt ratione qui eos\nqui nihil ratione nemo velit ut aut id quo'
},
{
userId: 2,
id: 18,
title: 'voluptate et itaque vero tempora molestiae',
body: 'eveniet quo quis\nlaborum totam consequatur non dolor\nut et est repudiandae\nest voluptatem vel debitis et magnam'
},
{
userId: 2,
id: 19,
title: 'adipisci placeat illum aut reiciendis qui',
body: 'illum quis cupiditate provident sit magnam\nea sed aut omnis\nveniam maiores ullam consequatur atque\nadipisci quo iste expedita sit quos voluptas'
},
{
userId: 2,
id: 20,
title: 'doloribus ad provident suscipit at',
body: 'qui consequuntur ducimus possimus quisquam amet similique\nsuscipit porro ipsam amet\neos veritatis officiis exercitationem vel fugit aut necessitatibus totam\nomnis rerum consequatur expedita quidem cumque explicabo'
}
]
useEffect(() => {
if(list){
let allSectionsCopy = JSON.parse(JSON.stringify(list));
console.log(allSectionsCopy); // outputs the above array
let sectionIndex = allSectionsCopy.findIndex(
item => item.id === param.id
);
console.log(param.id) //returns 16 (because my react route is /dashboard/16 )
console.log(sectionIndex) // this returns -1
// let sectionToUpdate = allSectionsCopy[sectionIndex];
// setPage(sectionToUpdate)
}
}, [state]);
索引返回 -1 而不是 5
任何帮助将不胜感激。
提前致谢
【问题讨论】:
标签: arrays reactjs indexing redux react-hooks