'useSelector and map function React Redux
i want to iterate through an array but Im not sure if i can do this in the useSelector redux hook because it's not giving me the result that i want. Have any of you ever achieved this? or am i going about it completely wrong?
index.jsx
const test = useSelector(state => state.data.map(e => e.details));
data.js
data: [
{
name: 'long neck',
details: {
total: 1,
height: "3ft",
weight: "34 lbs",
}
},
{
name: 'fun fact',
details: {
total: 30,
height: '1ft',
weight: '16 lbs',
}
},
],
Solution 1:[1]
I my opinion you should not do that.
Because you are returning a new array every time the useSelector gets called.
The right way in my opinion is to return the actual data and then do the filtering outside like this.
const data = useSelector(state => state.data);
const details = calculateDetails() => {
//do all your filtering, mapping, slicing
return data.map(e => e.details));
};
The reason I do it this way is to avoid rendering when nothing has changed.
You should not return new objects out of a useSelector unless you use the second parameter which is an equality checking funcion.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 |