gpt4 book ai didi

javascript - 我如何在 React Native 中调用另一个组件的函数?

转载 作者:行者123 更新时间:2023-12-04 08:23:33 24 4
gpt4 key购买 nike

如何从另一个组件调用函数?

App.js

<Button onPress={movePopUpCard()}></Button>
<PopUpCard/>

PopUpCard.js

const movePopUpCard = () => {
//Code to update popUpCardX
}

<Animated.View style={[
{transform: [{scale: scale}, {translateX: popUpCardX}]},
{position: 'absolute'}
]}>
</Animated.View>

最佳答案

通过使用 ref 和 forwardRef 你可以做到这一点。零食例如:https://snack.expo.io/@udayhunter/frisky-pretzels

App.js

import React,{useRef,useEffect} from 'react';
import { Text, View, StyleSheet } from 'react-native';
import PopUp from './PopUpCard'

const App =(props)=> {

const childRef = useRef(null)

return (
<View style={styles.container}>
<PopUp ref={childRef}/>


<Text
onPress = {()=>{
childRef.current.updateXvalue(10)
}}
>Press me</Text>

</View>
);
}

const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
backgroundColor: '#ecf0f1',
padding: 8,
},

});

export default App

弹出窗口

import React,{useState,useImperativeHandle,useEffect,forwardRef} from 'react'
import {View,Text,StyleSheet,Animated} from 'react-native'

const PopUp = (props,ref) => {
const [xValue, setXvalue] = useState(10)

const updateXvalue = (x)=>{
setXvalue(prev=> prev+x)

}

useImperativeHandle(ref, () => ({
updateXvalue
}));

return(
<Animated.View style = {[styles.mainView,{transform:[{translateX:xValue}]}]}>
</Animated.View>
)
}

const styles = StyleSheet.create({
mainView : {
height:100,
width:100,
backgroundColor:'red'
}
})


export default forwardRef(PopUp)

关于javascript - 我如何在 React Native 中调用另一个组件的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65384821/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com