小编Raf*_*res的帖子

如何正确使用react-router-dom中的useHistory()?

如何useHistory()正确使用?我无法从一个反应组件过渡到另一个反应组件。根据 React 文档以及 Stack Overflow 上的说明,我无法从 App.js 转换到 MyComponent.js。

例如 - 我正在尝试

/* **App.js ** */
/* Import modules */
import React from 'react';
import { useHistory } from 'react-router-dom'; // version 5.2.0

function App()
{
    let history = useHistory ();
    const handleClick = () => {
       history.push ('./pages/MyComponent');
    }    

    return (
       <div className="App">
          <button onClick={handleClick}>Next page ==></button>
       </div>
    );
}
Run Code Online (Sandbox Code Playgroud)

我也测试了这个示例,但是按下按钮时输出会引发以下错误:

类型错误:无法读取未定义的属性“push”

是不是有什么东西泄露给了我,或者 Babel 这边有什么错误?

项目反应结构:

+ Root/
    + src/
        - App.js
        - index.js
        + pages/
            - …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-router-dom

40
推荐指数
3
解决办法
21万
查看次数

prisma - 运行 graphql 查询时获取环境变量未找到错误消息

当我运行 GraphQL 查询时,我从 prisma 收到此错误消息。

Environment variable not found: DATABASE_URL.\n  -->  schema.prisma:6\n   | \n 5 |   provider = \"postgresql\"\n 6 |   url      = env(\"DATABASE_URL\")\n   | \n\nValidation Error Count: 1",
Run Code Online (Sandbox Code Playgroud)

起初,我的任何项目文件夹中都没有 .env 文件,然后我使用数据库 URL 的链接添加了它,但仍然无法正常工作。这是文件夹结构:

文件夹结构:在根目录中,有node_modules、prisma和src文件夹、.env、.gitignore和package.json文件。 在 prisma 内部,有一个 migrations 文件夹和一个 schema.prisma 文件。

这就是我的.env文件中的内容 -

DATABASE_URL="postgres://postgres:mypassword@db.pqtgawtgpfhpqxpgidrn.supabase.co:5432/postgres"
Run Code Online (Sandbox Code Playgroud)

prisma prisma-graphql

34
推荐指数
3
解决办法
6万
查看次数

任何状态更改时的 FlatList ScrollView 错误 - 不变违规:不支持动态更改 onViewableItemsChanged

当应用程序中的状态发生变化时,onViewableItemsChanged似乎不起作用。这样对吗?

如果是这种情况,似乎它不会很有用....

否则,用户将被迫向我们onScroll确定位置或类似的东西......

重现步骤

  1. 请参考小吃
  2. repo也已经上传到github
  3. 使用时任何状态更改都会产生错误 onViewableItemsChanged
  4. 这个错误甚至意味着什么?

注意:将onViewableItemsChanged函数放在const渲染方法的外部也无济于事...

<FlatList
    data={this.state.cardData}
    horizontal={true}
    pagingEnabled={true}
    showsHorizontalScrollIndicator={false}
    onViewableItemsChanged={(info) =>console.log(info)}
    viewabilityConfig={{viewAreaCoveragePercentThreshold: 50}}
    renderItem={({item}) =>
        <View style={{width: width, borderColor: 'white', borderWidth: 20,}}>
            <Text>Dogs and Cats</Text>
        </View>
    }
/>
Run Code Online (Sandbox Code Playgroud)

实际行为

错误

图片

react-native react-native-flatlist

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

开玩笑:TypeError:replaceAll 不是函数

String.prototype.replaceAll()是一种有用的方法,在构建和执行时一切正常。但是,所有 Jest 测试都失败并显示以下错误:

TypeError: replaceAll is not a function
Run Code Online (Sandbox Code Playgroud)

这些是我的依赖项:

"dependencies": {
  "core-js": "^3.6.5",
  "vue": "^2.6.11",
  "vue-class-component": "^7.2.3",
  "vue-i18n": "^8.22.0",
  "vue-property-decorator": "^8.4.2",
  "vue-router": "^3.3.4",
  "vuex": "^3.5.1"
},
"devDependencies": {
  "@vue/test-utils": "^1.1.0",
  "jest-junit": "^12.0.0",
  "ts-jest": "^26.4.1",
  "typescript": "~3.9.3",
  "vue-jest": "^3.0.7",
  "vue-template-compiler": "^2.6.10"
},
Run Code Online (Sandbox Code Playgroud)

我该如何解决这种行为?

javascript node.js jestjs

21
推荐指数
3
解决办法
9064
查看次数

不变违规:未找到模块 &lt;unknown&gt; 的 cbID 回调

我为我的项目创建了包含通用组件、服务、实用程序等的纱线包。然后我在 src 文件夹中创建了 index.ts 文件,我在其中导出了所有组件。然后我构建了该包,并将其添加到我的项目中。然后,如果我在真实设备或模拟器中启动应用程序后从包中导入组件,那就没问题了。但是,如果我先导入组件,然后使用react-native run-android(或) 启动应用程序,我会在循环中-ios遇到很多错误:Invariant Violation: no callback found with cbID for module<unknown>

在此输入图像描述

我究竟做错了什么?

npm typescript reactjs react-native yarnpkg

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

将“数字”的赔率数字相加

我正在尝试对特定数字(但不包括其自身)的赔率进行求和,例如:N = 5 那么 1+3 = 4

a<-5
sum<-function(x){
  k<-0
  for (n in x) {
    if(n %% 2 == 1)
      k<-k+1      
  }
         return(k)
}

sum(a)

# [1] 1
Run Code Online (Sandbox Code Playgroud)

但该函数不起作用,因为它计算赔率数字而不是对它们求和。

r

9
推荐指数
2
解决办法
134
查看次数

是否可以以编程方式访问 Android Q(SDK &gt;= 29)上的下载文件夹?

我想列出下载文件夹中的所有文件.txt,然后允许用户选择一个并阅读其内容。我的是,但我遇到了这个问题,因为我的 Android 是 Q (29)。minSdkVersion16

我试过的:

显然Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)会为 SDK <= 29 解决它。但是,我没有测试它,因为我想首先查看 Android Q 的解决方案。

getExternalStoragePublicDirectory说:

当应用以 Build.VERSION_CODES.Q 为目标时,应用无法再直接访问从此方法返回的路径。通过迁移到Context#getExternalFilesDir(String)MediaStoreIntent#ACTION_OPEN_DOCUMENT等替代方案,应用程序可以继续访问存储在共享/外部存储上的内容。

所以:

  • getExternalFilesDir返回/storage/emulated/0/Android/data/com.mypackage/files/Download。这个路径没有用,我希望它返回/storage/emulated/0/Download,这是下载文件所在的位置。

  • 我没有设法对MediaStore.Downloads. 我检查了文档,它说“特别是,如果您的应用程序想要访问您的应用程序未创建的 MediaStore.Downloads 集合中的文件,则必须使用存储访问框架。”。所以,我认为它对我不起作用。

  • 在我的概念,Intent并且Storage Access Framework需要用户通过目录和使用文件管理器,它是不是文件浏览什么,我想在这里。

简而言之:

是否可以在 Android Q (SDK >= 29) 中以编程方式列出.txt下载的文件?如果是这样,如何?

java android kotlin android-storage

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

如何在滚动时使用“位置:粘性”在 td / th 中添加或删除阴影?

我制作了一个带有标题和最后一列的表格,使用position: sticky. 我想当滚动条水平位于末尾时删除最后一列的阴影,并当滚动条垂直位于开头时删除标题中的阴影。在 AntDesign 中有一个所需结果的示例,但在这种情况下,表格仅在固定列中有阴影,而在标题中没有。

虽然由于性能原因我不想要使用滚动事件侦听器的解决方案(请参阅滚动链接效果),但如果有人以这种方式解决它,他们可以分享它以供参考并帮助其他人。

该代码也可从CodeSandbox获取。

main {
  display: flex;
  max-height: 20rem;
  overflow: auto;
}

table {
  border-spacing: 0;
}

th {
  text-align: left;
}

th,
td {
  border-bottom: 1px solid #c6c6c6;
  height: 5rem;
  white-space: nowrap;
  padding-right: 2rem;
}

.fixed {
  background-color: white;
  position: sticky;
}

.fixed-top {
  box-shadow: 4px 3px 5px 0px rgba(0, 0, 0, 0.2);
  top: 0;
  z-index: 1;
}

.fixed-right {
  border-left: 1px solid #c6c6c6;
  box-shadow: -5px 0px …
Run Code Online (Sandbox Code Playgroud)

html javascript css html-table

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

如何导航到屏幕而不将其添加到后台堆栈?

我的导航器是:

const MyStack = createStackNavigator();

const MyRoutes= () => (
  <MyStack.Navigator headerMode='none' initialRouteName='First'>
    <MyStack.Screen name='First' component={ScreenFirst} />
    <MyStack.Screen name='Second' component={ScreenSecond} />
  </MyStack.Navigator>
);
Run Code Online (Sandbox Code Playgroud)

我的实际流程是:

const MyStack = createStackNavigator();

const MyRoutes= () => (
  <MyStack.Navigator headerMode='none' initialRouteName='First'>
    <MyStack.Screen name='First' component={ScreenFirst} />
    <MyStack.Screen name='Second' component={ScreenSecond} />
  </MyStack.Navigator>
);
Run Code Online (Sandbox Code Playgroud)

但我想显示First路线而不将其添加到后台堆栈,所以它是:

First -> (next) -> Second -> (back) -> First
Run Code Online (Sandbox Code Playgroud)

是否可以?如果是,怎么办?我在用"@react-navigation/native": "^5.6.1"

我知道我可以控制路由中的 Back 行为Second,但由于在 Android (Java/Kotlin) 中可以显示 Fragment 而无需将其添加到 backstack,我想 React Native 中也存在类似的东西。

javascript react-native react-native-navigation

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

如何修复此警告:VirtualizedLists 永远不应嵌套在具有相同方向的普通 ScrollViews 内

当我FlatList在内部使用组件时ScrollView,我看到一条警告:

VirtualizedList 永远不应该嵌套在具有相同方向的普通 ScrollView 中 - 请改用另一个 VirtualizedList 支持的容器。

前后FlatList我使​​用了很多其他组件,而且我的屏幕很长。

我尝试用 来包装内容SafeAreaView,但它对我没有帮助,因为在这种情况下我无法滚动内容。我也尝试在 中使用ListHeaderComponent={SafeAreaView}and 。ListFooterComponent={SafeAreaView}<FlatList>

我用:

  • “反应”:“16.9.0”,
  • “反应本机”:“0.61.5”,

react-native react-native-scrollview react-native-flatlist safeareaview

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

React Hook Form - 在不清除表单的情况下重置“isDirty”?

基本上就是标题所说的。当我提交表单时,我正在检查登录是否成功,如果没有,它会显示一条消息。但是,当用户开始键入时,我希望此消息消失。

有点假设isDirty一旦提交表单就会被清除,但它仍然很脏。我可以reset从调用onSubmit,但这将清除表单的内容 - 我不想要。

想法?

reactjs react-hook-form

3
推荐指数
3
解决办法
2408
查看次数

与从文件中读取的字符串进行比较即使它们看起来相同也会返回 false

我正在尝试从.csv文件中读取一个字符串(由 分隔;),然后将第一列与该login字符串进行比较。这是我的代码:

FileReader file = new FileReader("MyCSV.csv");
BufferedReader entry = new BufferedReader(file);
String row;
row = entry.readLine();
do {
    String[] value = row.split(";");
    if (login.equals(value[0])) {   // login is passed as an argument to his function
         // do something
    }
    row = entry.readLine();
} while (row != null);
Run Code Online (Sandbox Code Playgroud)

我可以阅读整个文件,但我无法搜索第一个用户注册。在login比较总是返回false到第一个。我试过:

if (value[0].equals(login)) 
if (value[0] == login)
Run Code Online (Sandbox Code Playgroud)

控制台中的一个例子:

// I've put this inside `do while`
System.out.println(value[0] + " and " + login …
Run Code Online (Sandbox Code Playgroud)

java string equals string-comparison

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