React Native子组件点击后父组件状态不更新怎么办?

公孙爱巧 阅读 61

大家好,我在用React Native开发父子组件时遇到问题。父组件通过props传递了一个更新状态的函数给子组件,但点击子组件按钮后状态没有变化:


// 父组件
const Parent = () => {
  const [count, setCount] = useState(0);
  return (
     setCount(prev => prev + 1)} 
    />
  );
};

// 子组件
const Child = ({ count, onIncrement }) => (
  
    当前计数:{count}
  
);

我尝试过在父组件里用箭头函数包裹setCount,也试过用useCallback,但点击后count始终显示初始值0。控制台也没有报错,这是什么原因呢?

我来解答 赞 10 收藏
二维码
手机扫码查看
1 条解答
公孙文瑞
你这个问题是子组件没正确接收props里的状态值,React渲染时用了旧的count。改一下子组件,用函数式写法确保拿的是最新状态:

const Child = ({ onIncrement }) => (
<Button title="+" onPress={() => onIncrement()} />
);


父组件保持不变,这样就能正常更新了。折腾了吧?😄
点赞 1
2026-02-01 11:03