React native 保持旧状态的组件?

React native 保持旧状态的组件?,react-native,state,use-state,React Native,State,Use State,我有一个定制的模式与自定义按钮作为道具 const [selection,setSelection] = useState(null) const onSelect = (item) => { setSelection(item); Gui.PickOption({ message: 'choose an action', buttons: BUTTONS, onPress,

我有一个定制的模式与自定义按钮作为道具

const [selection,setSelection] = useState(null)

    const onSelect = (item) => {
      setSelection(item);
   
      Gui.PickOption({
          message: 'choose an action',
          buttons: BUTTONS,
          onPress,
      });
    }; 
BUTTONS = [{buttonText:'print selection', onPress:()=> console.log(selection)}]

这里的问题是,当用户按下按钮时,日志将为空,因为模式似乎具有更新“选择”之前的状态。为什么不更新?如何使按钮跟上状态变化?(请记住,上面的代码是我目前面临的问题的一个小例子),本质上我希望onPress始终以最“当前”的状态执行设置的“任务”。)

问题是您在setState之后使用了选择值。我想您可以使用一个
useffect
,它监听选择值并在那里执行逻辑,如:

const[selection,setSelection]=useState(null);
const onSelect=(项目)=>{
选举(项目1);
};
useffect(()=>{
Gui.PickOption({
信息:“选择一个动作”,
按钮:按钮,
新闻界,
});
},[选择];
设置某些状态(此处为setSelections)时,组件将使用新值重新渲染,但在
onSelect
按钮的函数中,您仍将使用旧值运行(直到下次使用,即下一次渲染)