使用 redux 时如何重新渲染 FlatList React Native

时间:2021-03-02 16:26:12

标签: react-native redux flatlist

我是 React Native 的新手,我在使用 FlatList 时遇到了问题。我将 extraData 分配给 redux 值,但在 redux 更新时它不会重新呈现 FlatList 。我想我应该将它分配给一个本地状态,但是我有太多的重新渲染错误。非常感谢任何帮助我的人! 下面是我的代码

function CartScreen() {
const cart = useSelector((state) => state.cartReducer);
console.log(cart);
const dispatch = useDispatch();

useEffect(() => {
    dispatch(cartActions.refreshCartAction(cart));
}, []);

const renderItem = ({ item }) => {
    return <CartItem book={item} />;
};

return (
    <View>
        <FlatList
            data={cart}
            renderItem={renderItem}
            keyExtractor={(item) => item._id.toString()}
            extraData={cart}
        />
    </View>
);
}

export default CartScreen;

2 个答案:

答案 0 :(得分:1)

如果全局状态的数据是异步的 你必须这样做

{cart  && <FlatList
          data={cart}
          renderItem={renderItem}
          keyExtractor={(item) => item._id.toString()}
          extraData={cart}
       />
}

答案 1 :(得分:1)

我在解决问题的 redux 操作中发现了一个错误。谢谢大家!!