想象我有一个像这样的物体
{
field1: 'test',
field2: 'test1'
}
Run Code Online (Sandbox Code Playgroud)
我如何创建以下验证:
如果field1和field2两者都为空 - 则无效
如果field1和field2两者都不为空 - 则无效
其他情况均有效。
我试图在 React-Native 中水平居中一个绝对定位的组件,但我不知道其宽度。
在CSS中我可以这样做:
position: absolute;
left: 50%,
transform: translateX(-50%);
Run Code Online (Sandbox Code Playgroud)
但是当我在 React-Native 中做同样的事情时,它只转换了 50%,而不是 50%。另外,因为我试图将导航栏置于 Tab.Navigator 的中心,所以我认为我无法将其包装在父组件中:
<Tab.Navigator
barStyle={{
position: "absolute",
width: "95%",
left: "50%",
transform: [{ translateX: "-200" }],
bottom: 5,
overflow: "hidden",
borderRadius: "50%",
}}
>
Run Code Online (Sandbox Code Playgroud)
编辑我试图居中的组件是 <Tab.Navigator> 导航栏。
我正在用 React Native 进行新开发。
首先,我npx react-native init hello_world --template react-native-template-typescript创建了基本代码,然后用以下代码替换了 app.tsx:
import React from 'react';
import {StyleSheet, Text, View} from 'react-native';
const App = () => {
return (
<View style={styles.helloWorldContainer}>
<Text style={{fontSize: 18}}>Hello, world!</Text>
</View>
);
};
const styles = StyleSheet.create({
helloWorldContainer: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
},
});
export default App;
Run Code Online (Sandbox Code Playgroud)
如果我删除组件文本的样式,错误就会消失。我的问题是如何修复错误,同时保留组件文本中的样式。我看到chrome有很多错误,是否有另一个更好的调试器?
我将应用程序更新为 React Navigation 6。在所有屏幕中,我自定义了headerBackImage,并添加了一些headerRight文本。在React Navigation 5中,如果headerTitle太长,它会被直接截断,并在标题末尾添加...,如下所示:
但在 React navigation 6 中,这个功能看起来发生了变化。我添加了一些背景颜色来向您展示标题的剪切:
我看到了这个主题:React Native Navigation Header title too long, 最终溢出,但也许 V6 中添加了新的 props。
这是我的屏幕:
<ProfileStack.Screen
options={({ navigation }: ScreenProps) => ({
headerTitle: 'My header title is not truncated why ?',
headerTitleStyle: {
backgroundColor: EColors.rouge,
},
headerBackImage: () => (
<BackButton />
),
headerTitleAlign: 'center',
headerBackTitle: ' ',
headerRight: () => (
<Text
onPress={() => navigation.navigate('toOtherScreen')}
style={{ marginRight: 20, backgroundColor: EColors.vert }}
>
Infos …Run Code Online (Sandbox Code Playgroud) 今年 React Native 团队推出了新的架构https://reactnative.dev/blog/2022/03/15/an-update-on-the-new-architecture-rollout。此功能仍然在旗帜下,但对我来说并不清楚,我可以使用所有与旧桥一起使用的库和这个新架构吗?
我在官方文档中没有找到答案。我唯一找到的是支持新架构的库列表。https://github.com/reactwg/react-native-new-architecture/discussions/6
我正在从视频 URL 生成缩略图,它在 Android 中工作正常,但在 IOS 中出现错误(Error: Can't write to file)
下面是我的代码。
import * as VideoThumbnails from 'expo-video-thumbnails';
var thumbnail = await VideoThumbnails.getThumbnailAsync(link, { time: 2000 });
Run Code Online (Sandbox Code Playgroud) 我正在尝试在浏览器中创建一个 xlsx 文件,发现https://github.com/exceljs/exceljs非常强大。但是,我找不到将 xlsx 对象保存到文件的方法。可能我需要使用 Buffer,但是如何从中生成文件呢?
const buffer = await workbook.xlsx.writeBuffer();
Run Code Online (Sandbox Code Playgroud)
该库可以在浏览器https://docs.sheetjs.com/docs/中生成文件,但它不擅长构建复杂字段。
FlashList和RecyclerListView都是使用Recycle的方式来渲染List,但是有什么区别呢?什么情况下应该选择FlashList还是RecyclerListView?优缺点都有什么?