【发布时间】: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