React Native允许您使用React构建本机移动应用程序。 React Native的重点是在您关注的所有平台上实现开发人员效率 - 学习一次,随处写作。
React Native / Expo NavigationContainer 问题
我收到此错误: 错误:看起来您已将“NavigationContainer”嵌套在另一个“NavigationContainer”中。通常,您只需要应用程序根目录下的一个容器,因此这可能是一个错误。如果这...
我正在尝试在我的项目中实现一项功能,其中状态栏在向上或向下滚动时随内容一起移动。尽管我付出了努力,但我仍然无法实现这个功能。
我正在涉足 React Native 的世界,并且对于如何建立一个新项目完全不了解。 按照文档的要求,我仍然得到一个空文件夹,其中只有...
hermes 引擎中的 Visionos 方法导致 pod 安装失败
我刚刚将 expo 更新到版本 51.0.28 并使用 npx expo-doctor 对版本 0.74.5 进行原生反应。 但现在我在启动项目时遇到这个错误,在 Hermes 引擎中找不到任何线索
我正在使用 React Native 和 Expo 构建多个应用程序。 我想知道在构建时是否有一种方法可以添加注释。例如,我希望能够在世博会上看到
在自定义组件内调用 useState Hook 时,React Native TextInput ReRenders
描述 当 TextInput 组件触发诸如 onChangeText 或 onKeyPress 方法之类的操作,然后触发 setState 时,该组件将重新渲染并失去焦点。 React Native 版本:...
undefined 不是一个函数。 Graphql + apollo + React Native
在我的 React Native 项目中,我使用 graphql codegen 来生成类型和钩子。我正在使用本机反应 0.74.5。但我不知道为什么会出现错误,所以这就是我无法启动我的应用程序的原因。 还有她...
由于Play商店的新需求,我需要将我的react-native项目中的sdk更新到34,我知道如何更新,但不知道应该更新什么以及为什么
我的targetVersion是33,minVersion是21,我知道如何用android studio更改它,但我不确定我是否只需要更新targetVersion,我应该更新minVersion还是其他什么...
如何从连接到android、java解决方案的外部USB驱动器读取文件
我有一个React Native应用程序,在连接外部USB设备时我需要找到某个根目录。 DataXYZ.txt 文件并能够共享它,因为据我所知反应本机......
我正在逐渐将 RN 项目转移到 Typescript。我有一个关于声明作为 props 传递给组件的样式类型的问题。 组件内的 Props 定义为...
我正在尝试使用录制的mp4内容作为base64缓冲区并发送到rest api。 从'expo-status-bar'导入{StatusBar}; 从“反应”导入反应; 导入 { 按钮、样式表、文本、Vi...
在 Firebase Analytics 仪表板中显示着陆页未设置
团队您好, 我正在使用 @react-native-firebase/analytics 来捕获本机 android 和 iOS 应用程序中的分析,但在分析仪表板上我看不到登陆页面分析。 我可以...
我有一个 TextInput,我不希望每次更改其中的值时都重新渲染 const [WrittenVal,setWrittenVal] = useState(()=>''); ... 我有一个 TextInput,我不希望每次更改其中的值时都重新渲染 const [WrittenVal,setWrittenVal] = useState(()=>''); ... <TextInput value={String(WrittenVal)} onChangeText={text => setWrittenVal(text)} /> 但是我希望能够通过按下按钮来更改输入内的值,这就是为什么我不只是使用defaultValue 有什么解决办法吗?? const inputRef = useRef(); <TextInput ref={inputRef} onChangeText={text => inputRef.text = text } /> //function to get input value const handleSubmit = () => { let textInputValue = inputRef.text; } 您可以使用 useRef 保存文本输入中的文本而无需渲染,并使用 useState 在按下按钮时显示输入中的文本: 实例:https://snack.expo.dev/TW-fMx1-2 import React from "react"; import { SafeAreaView, StyleSheet, TextInput,TouchableOpacity,Text } from "react-native"; const UselessTextInput = () => { const [text, onChangeText] = React.useState(""); const textRef = React.useRef('') const textToRef = (text) =>{ textRef.current = textRef.current + text } const showTextInInput = () =>{ onChangeText( textRef.current ) } console.log("render") return ( <SafeAreaView> <TextInput style={styles.input} onChangeText={textToRef} value={text} /> <TouchableOpacity onPress={showTextInInput}> <Text>SHOW TEXT IN INPUT</Text> </TouchableOpacity> </SafeAreaView> ); }; const styles = StyleSheet.create({ input: { height: 40, margin: 12, borderWidth: 1, marginTop:50, padding: 10, }, }); export default UselessTextInput; 如果您有如下所示的嵌套组件情况,您需要将状态移动到组件中(在 EpicComponent 下),setWrittenVal 将触发 EpicComponent 上的重新渲染。常见症状是当您键入时该字段会失去焦点。 const Parent = ()=> { const [WrittenVal,setWrittenVal] = useState(()=>''); ... const EpicComponent = ()=> { return ( <TextInput value={String(WrittenVal)} onChangeText={text => setWrittenVal(text)} /> ) } return (<EpicComponent/>) } 您无法阻止类型的重新渲染。但你的代码可以简化为: const [value, setValue] = useState(''); <TextInput value={value} onChangeText={setValue} /> 当值更改时,您无法阻止输入重新渲染。 但是您可以通过 React.memo 或 useMemo 钩子来阻止其他组件重新渲染。 要通过按下按钮更改输入值,您可以这样做: <Button onPress={() => { setWrittenVal(""); //write value you want in "" }} 通过这样做,您既可以防止重新渲染,又可以在单击按钮后重置文本输入值。 const ref = useRef(""); const inputRef = useRef(null); const onChangeText = (item) => { ref.current = item; }; const addComment = async () => { ref.current = ""; inputRef.current?.clear(); // Perform any other actions or logic you need here }; return ( <View> <TextInput ref={inputRef} onChangeText={onChangeText} /> <TouchableOpacity onPress={addComment}> <Text>Send</Text> </TouchableOpacity> </View> ); 您只能使用 UseRef 来防止重新渲染。 const keyRef = useRef(); const keyToRef = (text)=>{ keyRef.text = text } <TextInput ref={keyRef} onChangeText={keyToRef} value={keyRef?.text} /> 我也遇到了类似的问题,不过后来我用useMemo钩子解决了。
伙计们,我正在尝试在我的 React Native 应用程序中使用“react-native-manage-wallpaper”库来更改壁纸...... 但我收到此错误: 类型错误:null 不是对象(正在评估'
react 本机初始化失败 macOS / cdn.jsdelivr.net/
我已经研究react-native超过2年了,在windows上没有出现重大问题。 我正在努力让它在我的新 Mac 上运行。初始化失败。 npx react-native@latest init AwesomeProject [代码生成]
android 版本 .aab 崩溃,但 .apk 工作正常
android 版本 .aab 崩溃,但 .apk 工作正常(和 Metro 调试) 我添加了以下任一软件包: https://www.npmjs.com/package/freerasp-react-native 我下面有一些相关文件。 我不能
从链接或自定义 URL 打开 React Native 应用程序
我正在尝试设置深层链接,以便我可以将用户从电子邮件地址链接到该应用程序。我已经阅读了设置 expo 的文档,并且包含了应用程序名称的架构...
我正在尝试从行程状态设置为“即将到来”的后端获取数据 但我想使用当前时间有条件地获取它。它应该只获取最大 15 的数据
我正在创建一个反应本机项目并收到此错误。 下载模板 错误 安装 Pod 失败。这不会影响项目初始化,您可以安全地继续。 然而,你会...
我想当文本<=2 lines, then display 2 lines without "...". However, if the text is >2行时显示,然后在中间添加“...”。 在我的代码中,我可以添加“......