【问题标题】:My redux prop gives me empty data after access it from flatList onRefresh我的 redux 道具在从 flatList onRefresh 访问后给了我空数据
【发布时间】:2021-02-07 13:47:04
【问题描述】:

如果我第一次通过useEffect 调用我的reload 方法,它包含我的数据,但如果我在运行时通过onRefresh 调用它,它会给我空数据。

为什么?我应该如何保存它?是在哪个线程上调用onRefresh有问题吗?

有关我的项目的更多信息,请查看此question,可能是同一个问题。

const MyScreen = ({ items }) => {
    const [initialItems, setInitialItems] = useState(items)
   
    useEffect(() => {
        reload()
    }, [])

    const reload = () => {
        console.log(initialItems) // same value 
        console.log(items) // same value 
    }


    return (
        <FlatList
            ...
            refreshControl={
                <RefreshControl
                refreshing={isRefreshing}
                onRefresh={() => reload()} 
                />
            }
            ...
        />
    )
}

const mapStateToProps = (state) => { 
    return {
        items: state.items, // I tried this also with [...state.items]
    }
}

【问题讨论】:

  • 函数 reloadData 是否已定义? onRefresh={() => reloadData()}
  • 是的,对不起,这里是复制错字
  • 其他东西正在改变你的状态,我看不出你列出的代码有什么问题。
  • 你在使用 PropTypes 吗?
  • 我没用过

标签: react-native redux react-redux react-native-flatlist flatlist


【解决方案1】:

我的错误是像这样复制我的数组:xArray = yArra 这意味着按引用而不是按值调用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-07
    • 2017-01-17
    相关资源
    最近更新 更多