Javascript useRef当前为isn';应用于子组件时无法设置
因此,在返回上方,这两个参考挂钩的定义如下: const containerRef=useRef();const couponBaseBannerRef=useRef() 然而,我的CouponBaseBanerRef仍然没有设置。。。这是一个2倍的孩子,但我知道我做错了什么。这是我的代码,上面标出了相关的部分 非常感谢你Javascript useRef当前为isn';应用于子组件时无法设置,javascript,reactjs,react-native,Javascript,Reactjs,React Native,因此,在返回上方,这两个参考挂钩的定义如下: const containerRef=useRef();const couponBaseBannerRef=useRef() 然而,我的CouponBaseBanerRef仍然没有设置。。。这是一个2倍的孩子,但我知道我做错了什么。这是我的代码,上面标出了相关的部分 非常感谢你 return ( <> <View style={styles.container}> <MapViewfollowUserLocatio
return (
<>
<View style={styles.container}>
<MapViewfollowUserLocation={true}zoomEnabled={true}showsUserLocation={true}style={styles.mapStyle}provider={PROVIDER_GOOGLE}customMapStyle={customData}initialRegion={{latitude: location ? location.latitude : 40.318394568204184,longitude: location ? location.longitude : -111.70952489745419,latitudeDelta: 0.1,longitudeDelta: 0.1,}}onPress={() => {containerRef.current.onMapClick();}}>
{couponBaseApi.data.couponBases? couponBaseApi.data.couponBases.map((report) =>
(<Markerkey={report.couponBaseID}coordinate={{latitude: report.latitude,longitude: report.longitude,}}tracksViewChanges={false}icon={getMarkerIcon(report.type)}onPress={(e) => {e.stopPropagation();
//couponBaseBannerRef.current.image =
report.companyURL;containerRef.current.onClickBase();
console.log(couponBaseBannerRef); //current is undefined
console.log(containerRef); //Returns as a full object}}>
</Marker>)): false}
</MapView>
<AppContainer ref={containerRef}> //working reference set here
<CouponBase
//Reference set here
ref={couponBaseBannerRef}title="WENDYS"image="https://reactnativecode.com/wp-content/uploads/2017/05/react_thumb_install.png"subTitle="Fires and stuff">
</CouponBase>
</AppContainer>
</View></>);
您需要将ref转发到真实的DOM元素。详见其他问题
<Parent>
<Middle>
<Child/>
<Middle
<Parent/>
Object {
"current": undefined,
}