2

我是 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;
4

2 回答 2

1

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

{cart  && <FlatList
          data={cart}
          renderItem={renderItem}
          keyExtractor={(item) => item._id.toString()}
          extraData={cart}
       />
}
于 2021-03-02T18:30:54.060 回答
1

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

于 2021-03-05T03:23:46.453 回答