我不知道如何更好地描述它。我正在做 react-native 项目,发生了一些事情,由于某种原因我不能再运行它了。我收到一些奇怪的消息,比如无法克隆某些功能。
error: src/requests/TimeoutRequest.ts: function (path) {
return fn.call(state, path, state);
} could not be cloned.
Run Code Online (Sandbox Code Playgroud)
或者:
error: src/sensors/GPS.ts: Program(path) {
importAll = path.scope.generateUid("$$_IMPORT_ALL");
importDefault = path.scope.gen...<omitted>... } could not be cloned.
Run Code Online (Sandbox Code Playgroud)
所有版本:
npm version: 7.10.0
"react": "^16.11.0",
"react-native": "^0.62.2",
dev:
"@babel/core": "^7.13.15",
"@babel/runtime": "^7.13.10",
"babel-jest": "^24.9.0",
"babel-plugin-root-import": "^6.6.0",
"metro-react-native-babel-preset": "^0.57.0",
"react-test-renderer": "16.9.0"
Run Code Online (Sandbox Code Playgroud)
如果我注释掉这个函数。我在另一个中出错,依此类推。中间发生了什么:我更新了 npm 版本。然后我在下载一些库时遇到了一些问题,我不得不rm -rf node_modules && npm install.
我试过的:
谷歌搜索,一般。找不到任何可行的解决方案。发现它可能是 babel 问题,但它可能完全错误,我不知道
npm start --reset-cache
删除缓存文件夹、守望者的东西等等
npm install --legacy-peer-deps
克隆项目并在另一个文件夹中执行所有操作
恢复或删除 package-lock.json 和 yarn.lock。安装或不安装它们 …
我不得不完全重写这个问题。
我有一个React Native Android应用程序。当我使用构建apk文件时./gradlew assembleRelease -x bundleReleaseJsAndAssets,它运行良好,但此后它完全停止编译。甚至react-native run-android不再工作了。
我到目前为止发现的是:首先,错误是这样的
Task :app:processDebugResources FAILED
resource android:attr/fontVariationSettings not found.
resource android:attr/ttcIndex not found.
Run Code Online (Sandbox Code Playgroud)
如果我将这些行添加到中gradle.properties,
android.useAndroidX=true
android.enableJetifier=true
Run Code Online (Sandbox Code Playgroud)
错误发生变化。现在就是这个
Task :@JWWon_react-native-universal-pedometer:compileDebugJavaWithJavac FAILED
error: package android.support.annotation does not exist
import android.support.annotation.Nullable;
^
cannot find symbol
private void sendPedometerUpdateEvent(@Nullable WritableMap params) {
^
symbol: class Nullable
location: class BMDPedometerModule
Run Code Online (Sandbox Code Playgroud)
问题不在于库。如果我从项目中删除它,它将开始抱怨另一个项目。要使其编译,我必须删除7个库。一个例子:
Task :@react-native-community_netinfo:compileDebugJavaWithJavac FAILED
error: package android.support.v4.net does not exist
import android.support.v4.net.ConnectivityManagerCompat;
error: cannot find symbol
promise.resolve(ConnectivityManagerCompat.isActiveNetworkMetered(getConnectivityManager()));
^
symbol: variable …Run Code Online (Sandbox Code Playgroud) 我想在 Mac OS 上将图像(PIL 图像)复制到剪贴板我尝试了多种不同的方法来做到这一点。大多数python剪贴板模块(如pyclip或clipboard)不支持图像。
我找到了一个在 Windows 上执行此操作的代码,但在 mac 上没有。我尝试使用 QT,通过 brew 安装它,由于某种原因 brew 安装了一个新的 python 3.7.2(我有 3.7.1)并搞砸了像 python 和 python3 这样的终端命令。我设法修复了它,但这非常令人沮丧。无论如何我都无法让它工作。
我见过一个带有 win32 剪贴板的方法,但它仅适用于 Windows。我尝试了各种不同的模块,但没有一个接受图像。我想不出解决方案,所以我在这里寻求帮助。
一点背景。我正在编写一个应用程序,它将保存剪贴板中的图像并将其保存到文件中。我对此没有问题,但我也想存储我保存的内容,然后能够将其拉回剪贴板。就像打开上次保存一样。
我正在尝试通过AppContainer传递道具。我可以通过其他组件传递信息,但是我不知道如何通过createAppContainer发送道具
在App.js中:
render() {
return (
this.state.isLoggedIn ? <DrawerNavigator /> :
<SignedOutNavigator handler={this.saveUserSettings} />
)
}
Run Code Online (Sandbox Code Playgroud)
在SignedOutNavigator中:
import React from "react";
import { View, Text } from "react-native";
import { createStackNavigator, createAppContainer } from "react-navigation";
import LoginScreen from "../screens/LoginScreen";
const SignedOutNavigator = createStackNavigator({
Login: {
// screen: LoginScreen
screen: props => <LoginScreen screenProps={value => {
// I need to access props from here
// like this.props.handler(value)
}} />,
navigationOptions: ({ navigation }) => ({
header: null,
}),
}
});
export …Run Code Online (Sandbox Code Playgroud) 我正在构建一个应用程序,它有一个计时器来在计时器处于活动状态时请求地理定位。对于计时器,我使用的是react-native-background-timer。这是一种工作,但不完全是我想要的。
用这段代码:
BackgroundTimer.runBackgroundTimer(() => {
console.log('tic');
},
1000);
Run Code Online (Sandbox Code Playgroud)
当应用程序在后台时,计时器正在停止。而这段代码:
const intervalId = BackgroundTimer.setInterval(() => {
console.log('tic');
}, 1000);
Run Code Online (Sandbox Code Playgroud)
它甚至在后台不断运行,但我无法阻止它。当我运行时BackgroundTimer.clearInterval(intervalId);,计时器仍在运行。即使当我离开屏幕并返回主屏幕时,计时器仍然滴答作响,永不停止。这并不理想,因为我需要计时器运行几分钟然后停止。
我将计时器设置为 1 秒以更新屏幕上剩余的时间。我正在考虑将计时器设置为 6 分钟一次,但是如何每秒更新状态?为这个制作 2 个计时器感觉是一种不好的做法,即使它会起作用。
因此,为了更清楚,用户假设从事某些活动,例如步行几分钟。因此,当用户接听电话或打开音乐应用程序切换音乐或其他内容时,我不能让计时器停止。计时器仍然需要运行,我需要通过地理位置测量步数和距离。即使用户打开另一个应用程序,忘记我的应用程序,它也需要完美地工作,并且它仍然会运行剩余的时间,然后在数据库中记录并停止。
我正在尝试对表示文件名的文本进行自定义截断,该文件名始终显示文件扩展名,但如果空间不足,则隐藏部分名称。例如,文件名是testtesttest.xml. 如果没有足够的空间,我希望它显示类似的内容tes...xml
我一直在玩text-overflow: ellipsis,但没有得到任何结果。它要么截断整行,要么根本不截断。
export default function FilenameTruncate(props) {
const [name, extension] = props.filename.split('.')
return (
<div className="filename-container">
<div className="filename-text">
<span>{name}</span>
</div>
<div className="filename-ext">
<span>.{extension}</span>
</div>
</div>
)
}
Run Code Online (Sandbox Code Playgroud)
.filename-container {
display: flex;
flex-direction: row;
overflow: hidden;
}
.filename-text {
white-space: nowrap;
text-overflow: ellipsis;
}
.filename-ext {
white-space: nowrap;
}
Run Code Online (Sandbox Code Playgroud) 我有一个应用程序使用backgroundWorker向last.fm网站发出API请求.最初我不知道我需要做多少请求.响应包含总页数,所以我只会在第一次请求后得到它.这是下面的代码.
private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
int page = 1;
int totalpages = 1;
while (page <= totalpages)
{
if (backgroundWorker.CancellationPending)
{
e.Cancel = true;
return;
}
//Here is the request part
string Response = RecentTracksRequest(username, from, page);
if (Response.Contains("lfm status=\"ok"))
{
totalpages = Convert.ToInt32(Regex.Match(Response, @"totalPages=.(\d+)").Groups[1].Value);
MatchCollection match = Regex.Matches(Response, "<track>((.|\n)*?)</track>");
foreach (Match m in match)
ParseTrack(m.Groups[1].Value);
}
else
{
MessageBox.Show("Error sending the request.", "Error",
MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
if (page >= totalpages)
break;
if (totalpages == 0) …Run Code Online (Sandbox Code Playgroud)