我对React Native有点陌生。我在我的屏幕MyFamily上使用getFamily()
,但当我转到另一个屏幕时,更改了Family的值,然后返回到我的MyFamily屏幕,然后我看不到更改。我尝试使用useEffect
,但仍然没有任何React,日志也没有发生。我该如何解决这个问题?
export default function MyFamily({ navigation, props, person, inheritors }) {
console.log(getFamily());
let [family, setFamily] = useState(getFamily());
useEffect(() => {
console.log(getFamily());
setFamily(getFamily());
}, [getFamily]);
在我再次设置系列的屏幕中,我执行以下操作:我知道这是正确的,因为显示的Json显示了更新后的值。
import { setFamily } from '../../utilities/family';
setFamily(responseJson.family);
这就是家庭的形成方式:
let family = '';
export default family;
export function getFamily() {
return family;
}
export function setFamily(f) {
family = f;
}
1条答案
按热度按时间gcuhipw91#
React实际上并不知道
getFamily
函数返回的值会改变每个渲染,在useState
函数中,它只在初始状态下使用。并且useEffect
函数永远不会重新运行,因为getFamily
函数本身永远不会更改和重新触发useEffect
。您必须更改getFamily()
函数以使用"s存储在父组件中,并将其作为属性传递到MyFamily组件中。例如:
然后从
MyFamily
开始:并且从
OtherComponent
: