我想知道如果我将大组件拆分成许多非常小的组件,我的代码是否会更高效,以便应用程序一次只渲染 DOM 的较小部分。
但是我觉得 React 可能已经只渲染了应用程序发生变化的部分,无论组件是大还是小。所以如果一个庞大组件的一小部分被改变,React 只会重新渲染组件的那一小部分,而不是整个组件。
我在第二段中的断言是否正确,或者我可以通过将一个大组件分成许多小组件来获得更好的性能吗?我在这个问题中包括 ReactJS 和 React Native。我认为它们在这方面是相同的,但如果它们不同,我想知道。
我正在尝试使用 Flexbox 在 React-Native 中构建布局,但在文本很长时遇到了问题。我希望布局看起来像这样:
但是,当蓝色文本变长时,它会将日期从屏幕右侧推开,如下所示:
我故意让文本停留在 1 行。我想要的是蓝色文本在不缩小文本的情况下尽可能多地展开。我是 RN 的新手,我在 CSS 方面的工作非常有限,所以我在做这样的事情方面没有太多经验。这是我的样式表代码:
const styles = StyleSheet.create({
textContainer: {
flex: 1
},
separator: {
height: 1,
backgroundColor: '#dddddd'
},
title: {
fontSize: 25,
fontWeight: 'bold',
color: '#48BBEC'
},
subtitle: {
fontSize: 20,
color: '#656565'
},
dateContainer: {
flex: 1,
justifyContent: 'center',
alignItems: 'flex-end'
},
rowContainer: {
flexDirection: 'row',
padding: 10
}
});
Run Code Online (Sandbox Code Playgroud)
最后,我的布局代码:
<TouchableHighlight
underlayColor='#dddddd'>
<View style={styles.rowContainer}>
<View cstyle={styles.textContainer}>
<Text numberOfLines={1} style={styles.title}>{rowData.name}</Text>
<Text style={styles.subtitle}>{rowData.teacher}</Text>
</View>
<View style={styles.dateContainer}>
<Text style={styles.subtitle}>{result}</Text>
</View> …Run Code Online (Sandbox Code Playgroud) 在我的本机应用程序中,我需要一个后台服务来监听 Nfc 标签检测事件。我正在寻找一些像 android 后台服务一样工作的插件。
我正在使用 expo 构建一个 react-native 应用程序,但是,我有一个错误,因此我无法继续构建该应用程序。我什至在错误消息中提到的 node_modules 中查找文件。我正在使用 react-native-gesture-handler 进行屏幕导航。如果我卸载了 react-native-gesture-handler 并删除了导航代码,这会解决我的错误吗?我该如何解决?
应用程序.js
import React, { Component } from 'react';
import { StackNavigator } from 'react-navigation';
import Plan from './screens/Plan';
import Home from './screens/Home';
const AppNavigator = StackNavigator({
PlanScreen: { screen: Home },
HomeScreen: { screen: Plan }
});
export default class App extends Component {
render() {
return (
<AppNavigator/>
)
}
}
Run Code Online (Sandbox Code Playgroud)
主页.js
import React, { Component } from 'react';
import { View, Text, Button, TextInput } from 'react-native'; …Run Code Online (Sandbox Code Playgroud) react-native react-native-android react-native-navigation expo react-datepicker
这个错误突然开始出现。
Node : v10.16.3
React native : 0.60.5
react-native-cli: 2.0.1
Run Code Online (Sandbox Code Playgroud)
捆绑失败:错误:无法
stream从/Users/username/React Native/SampleApp/node_modules/browser-stdout/index.js以下位置解析模块:模块stream在 Haste 模块映射中不存在
它给出了这一行的错误:
var WritableStream = require('stream').Writable
Run Code Online (Sandbox Code Playgroud)
我尝试通过 npm 安装“流”
npm install stream
Run Code Online (Sandbox Code Playgroud)
然后其他类似的错误开始出现。
我正在为我的纯RN 0.61.2应用程序使用React-Navigation。当我在调试模式下使用它时,该应用程序运行完美。但是,在发布模式下,当我尝试打开抽屉导航菜单或在选项卡菜单中向下滚动时,应用程序会立即崩溃。
依赖项:
...
"dependencies": {
"@react-native-community/async-storage": "^1.6.2",
"@react-native-community/netinfo": "^4.4.0",
"@react-native-community/slider": "^2.0.2",
"react": "16.9.0",
"react-native": "0.61.2",
"react-native-admob": "^2.0.0-beta.6",
"react-native-gesture-handler": "^1.4.1",
"react-native-reanimated": "^1.3.0",
"react-native-screens": "1.0.0-alpha.23",
"react-native-vector-icons": "^6.6.0",
"react-navigation": "^4.0.10",
"react-navigation-drawer": "^2.2.2",
"react-navigation-stack": "^1.9.3",
"react-navigation-tabs": "^2.5.5"
},
...
Run Code Online (Sandbox Code Playgroud)
我已经将这些代码行添加到android/app/build.gradle的依赖项中:
implementation 'androidx.appcompat:appcompat:1.1.0-rc01'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0-alpha02'
Run Code Online (Sandbox Code Playgroud)
在 App.js 中,我试过
import {enableScreens} from 'react-native-screen';
enableScreens();
Run Code Online (Sandbox Code Playgroud)
并且
import {useScreens} from 'react-native-screen';
useScreens();
Run Code Online (Sandbox Code Playgroud)
用2.0.0-alpha.1,2.0.0-alpha.3和1.0.0-alpha.23版本react-native-screens。
然而,我仍然得到相同的结果:调试模式完美运行,释放模式在抽屉导航滑动或标签导航滚动后急剧崩溃。
我使用adb logcat并看到的解决方案 …
android react-native react-native-android react-native-navigation
在我的 React Native 应用程序中,我有一个很棒的字体图标。我想旋转它。需要帮助。
import React from 'react'
import { View } from 'react-native';
import Icon from 'react-native-vector-icons/FontAwesome5';
const InfoBox = () => {
return (
<View >
<Icon name={'hand-holding-usd'} size={20}/>
</View>
)
}
export default InfoBox;
Run Code Online (Sandbox Code Playgroud) 我正在尝试将标题的颜色和状态栏的图标更改为黑色。因此,根据 react-native status-bar 文档,我将其设置barStyle为dark-content但没有任何变化。
<StatusBar barStyle="dark-content" backgroundColor={'white'} />