如何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) 当我运行 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 的链接添加了它,但仍然无法正常工作。这是文件夹结构:
这就是我的.env文件中的内容 -
DATABASE_URL="postgres://postgres:mypassword@db.pqtgawtgpfhpqxpgidrn.supabase.co:5432/postgres"
Run Code Online (Sandbox Code Playgroud) 当应用程序中的状态发生变化时,onViewableItemsChanged似乎不起作用。这样对吗?
如果是这种情况,似乎它不会很有用....
否则,用户将被迫向我们onScroll确定位置或类似的东西......
注意:将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)
错误

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)
我该如何解决这种行为?
我为我的项目创建了包含通用组件、服务、实用程序等的纱线包。然后我在 src 文件夹中创建了 index.ts 文件,我在其中导出了所有组件。然后我构建了该包,并将其添加到我的项目中。然后,如果我在真实设备或模拟器中启动应用程序后从包中导入组件,那就没问题了。但是,如果我先导入组件,然后使用react-native run-android(或) 启动应用程序,我会在循环中-ios遇到很多错误:Invariant Violation: no callback found with cbID for module<unknown>
我究竟做错了什么?
我正在尝试对特定数字(但不包括其自身)的赔率进行求和,例如: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)
但该函数不起作用,因为它计算赔率数字而不是对它们求和。
我想列出下载文件夹中的所有文件.txt,然后允许用户选择一个并阅读其内容。我的是,但我遇到了这个问题,因为我的 Android 是 Q (29)。minSdkVersion16
我试过的:
显然Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)会为 SDK <= 29 解决它。但是,我没有测试它,因为我想首先查看 Android Q 的解决方案。
getExternalStoragePublicDirectory说:
当应用以 Build.VERSION_CODES.Q 为目标时,应用无法再直接访问从此方法返回的路径。通过迁移到Context#getExternalFilesDir(String)、MediaStore或Intent#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下载的文件?如果是这样,如何?
我制作了一个带有标题和最后一列的表格,使用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)我的导航器是:
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 中也存在类似的东西。
当我FlatList在内部使用组件时ScrollView,我看到一条警告:
VirtualizedList 永远不应该嵌套在具有相同方向的普通 ScrollView 中 - 请改用另一个 VirtualizedList 支持的容器。
前后FlatList我使用了很多其他组件,而且我的屏幕很长。
我尝试用 来包装内容SafeAreaView,但它对我没有帮助,因为在这种情况下我无法滚动内容。我也尝试在 中使用ListHeaderComponent={SafeAreaView}and 。ListFooterComponent={SafeAreaView}<FlatList>
我用:
react-native react-native-scrollview react-native-flatlist safeareaview
基本上就是标题所说的。当我提交表单时,我正在检查登录是否成功,如果没有,它会显示一条消息。但是,当用户开始键入时,我希望此消息消失。
有点假设isDirty一旦提交表单就会被清除,但它仍然很脏。我可以reset从调用onSubmit,但这将清除表单的内容 - 我不想要。
想法?
我正在尝试从.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) javascript ×4
react-native ×4
reactjs ×3
java ×2
android ×1
css ×1
equals ×1
html ×1
html-table ×1
jestjs ×1
kotlin ×1
node.js ×1
npm ×1
prisma ×1
r ×1
safeareaview ×1
string ×1
typescript ×1
yarnpkg ×1