Reactjs useState()钩子不';t导致组件重新招标,这样子组件也不会更新
我创建了一个视图,其中用户从设备上的本地数据库加载。单击任务组件时,它应该更新并在组件中显示复选标记(这是Reactjs useState()钩子不';t导致组件重新招标,这样子组件也不会更新,reactjs,react-native,Reactjs,React Native,我创建了一个视图,其中用户从设备上的本地数据库加载。单击任务组件时,它应该更新并在组件中显示复选标记(这是选中的Prop负责的)。但不知何故,在第一次更新所选的状态数组后,将所有值从false=notselected更新为true,页面不会发生重新排序 任何人都看到我在代码中犯的错误。因为我试了很多,但似乎找不到。不知何故,我仍然确信我做了一个,因为根据文档,setSelected函数应该在值改变时触发重新排序,而数组就是这样做的 Users.tsx(应用程序的一个页面) const用户:Rea
选中的Prop负责的)。但不知何故,在第一次更新所选的
状态数组后,将所有值从false=notselected更新为true,页面不会发生重新排序
任何人都看到我在代码中犯的错误。因为我试了很多,但似乎找不到。不知何故,我仍然确信我做了一个,因为根据文档,setSelected函数应该在值改变时触发重新排序,而数组就是这样做的
Users.tsx(应用程序的一个页面)
const用户:React.FC=()=>{
...
返回(
{contacts.length>0(
contacts.map((c,索引)=>{
返回[
{
setSelected((预设)=>{
预告[
指数
]=已选定;
返回[…预存];
});
}}
键={index}
名字={
c、 名字+
" " +
c、 姓氏
}
/>,
,
];
})
) : (
尚未创建任何客户
)}
{
const[checked,setChecked]=使用状态(false);
useffect(()=>{
setChecked(checkedProp);
},[checkedProp]);
返回(
{
onSelect(!选中);
}}
>
{检查过了吗(
):未定义}
{name}
);
};
除了未发生的重新招标,我没有得到任何异常或其他情况。答案是react导航根本不会导致对重新访问的路线进行更新。但它为您提供了useIsFocused()
挂钩,以便与useEffect()
相结合,如下所示:
const focused = useIsFocused();
//Gets called on each Visit of the Route/View
useEffect(()=>{...}, [focused]);
答案是react导航根本不会导致对重新访问的路线进行更新。但它提供了useIsFocused()
挂钩,可与useEffect()
组合,如下所示:
const focused = useIsFocused();
//Gets called on each Visit of the Route/View
useEffect(()=>{...}, [focused]);
const focused = useIsFocused();
//Gets called on each Visit of the Route/View
useEffect(()=>{...}, [focused]);