首页 > 解决方案 > React Native 中的 ref 未定义

问题描述

有人可以帮我弄清楚在 RN 中使用 setNativeProps 的最佳方法是什么?

在我的反应功能组件中,我做了这样的事情

const AutoComplete = (props) => {
 let parentViewRef = null

  useEffect(() => {
    setTimeout(function(){ console.log(parentViewRef) }, 3000)
  },[])

  return(
    <View  
      ref={(viewRef) => { 
        parentViewRef = viewRef 
      }}
      style={styles.modelOpenViewMain}>    <View style={styles.modelOpenInputView}>

           </View>
        </View>
    )
  }
}

但不幸的是,我的 parentViewRef 是未定义的。知道我做错了什么吗?

标签: react-native

解决方案


如果我正确理解您要实现的目标,那么您应该使用useRef挂钩。

所以你的代码看起来像这样:

import React, { useRef } from 'react';

const AutoComplete = (props) => {
 let parentViewRef = useRef(null);

  return(
    <View  
      ref={parentViewRef}
      style={styles.modelOpenViewMain}>    <View style={styles.modelOpenInputView}>

           </View>
        </View>
    )
  }
}

然后,您将能够通过其current属性对您的 ref 做任何您想做的事情,例如 parentViewRef.current....

希望这可以帮助!


推荐阅读