小编Kir*_*kov的帖子

基于另一个字段的 ZOD 验证

想象我有一个像这样的物体

{
  field1: 'test',
  field2: 'test1'
}
Run Code Online (Sandbox Code Playgroud)

我如何创建以下验证:

如果field1field2两者都为空 - 则无效

如果field1field2两者都不为空 - 则无效

其他情况均有效。

typescript zod

12
推荐指数
1
解决办法
2万
查看次数

如何在 React-Native 中按百分比翻译 X?

我试图在 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

9
推荐指数
1
解决办法
1万
查看次数

React Native Chrome 调试器错误:NativeUIManager.getConstantsForViewManager('Text') 引发异常

我正在用 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-native

7
推荐指数
1
解决办法
7739
查看次数

如果标题太长,React 导航 6 headerRight 会被截断

我将应用程序更新为 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 react-navigation react-navigation-v6

6
推荐指数
0
解决办法
690
查看次数

我可以将新的 React Native 架构与不支持它的库一起使用吗

今年 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

react-native

6
推荐指数
1
解决办法
907
查看次数

错误:React Native expo-video-thumbnails IOS 中无法写入文件错误

我正在从视频 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)

react-native

5
推荐指数
0
解决办法
386
查看次数

如何使用 ExcelJS 将 xlsx 写入浏览器中的文件?

我正在尝试在浏览器中创建一个 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/中生成文件,但它不擅长构建复杂字段。

javascript xlsx exceljs

5
推荐指数
1
解决办法
2875
查看次数

React Native 中 FlashList 与 RecyclerListView 有什么区别

FlashListRecyclerListView都是使用Recycle的方式来渲染List,但是有什么区别呢?什么情况下应该选择FlashList还是RecyclerListView?优缺点都有什么?

react-native recyclerlistview flash-list

4
推荐指数
1
解决办法
1247
查看次数