如何使用另一个功能在onPress传递作为prop在React Native?



我有一个可重用的组件AppFormButtonGroup

接受道具buttonsnamevalueonPressselectedIndex...props

它也使用const { setFieldValue } = useFormikContext();

配置如下:

<ButtonGroup
buttons={buttons}
selectedIndex={selectedIndex}
onPress={onPress}
{...props}
/>
对于它的应用程序,比如说,在另一个文件上,我这样使用它:
<AppFormButtonGroup
name="country"
buttons={countries}
selectedIndex={selectedCountryIndex}
onPress={(value) => {
setCountry(countries[value])
setSelectedCountryIndex(value)
setIsCountrySheetVisible(false)
}}
value={country}
/>

onPress道具的内容被转移到AppFormButtonGroup,然后被应用。它现在正在工作。

我的问题是如何使用setFieldValueAppFormButtonGroup的onPress道具,如果我已经设置了其他文件上的onPress道具的内容?

这是我的目标之一:

AppFormButtonGroup.js

onPress={() => {
setFieldValue(name, value);
}}

这是按预期工作,但它被覆盖的onPress道具[code below]在它

AnotherFile.js

onPress={(value) => {
setCountry(countries[value])
setSelectedCountryIndex(value)
setIsCountrySheetVisible(false)
}}

如何同时使用两者?

我不确定这是否是我的语法错误,或者我正在做的方法是非常低效的,如果你能提供一个更好的方法,我将非常感激!

谢谢!

我尝试了以下方法,但没有效果:

onPress={[onPress,setFieldValue(name, value)]}

我也试过在其他文件上声明和使用const { setFieldValue } = useFormikContext();,但似乎不起作用。

我的问题是我如何在一个onPress中使用以下内容?

setCountry(countries[value])
setSelectedCountryIndex(value)
setIsCountrySheetVisible(false)
setFieldValue(name, value)

setFieldValue(name, value)只能在AppFormButtonGroup.js内部使用

在子类中首先更新本地状态,然后调用父类处理程序。像这样:

const Child = ({onPress}) => { 
const [count, setCount] = useState(0);
return <Button
title={`${count}`}
onPress={() => {
setCount(count + 1)
onPress(count + 1)
}}
/>
}
const Parent = () => {
const [count, setCount] = useState(0);
return <>
<Child
onPress={(c) => setCount(c)}
/>
<Text>{`Child count ${count}`}</Text>
</>
};

相关内容

  • 没有找到相关文章

最新更新