我有React Native应用程序,我从得到的数据API通过fetch。我创建了从API. 我需要每 5 秒重新渲染一次。为此,我将我的自定义钩子包装到 setInterval 并且在我的应用程序变得非常缓慢并且当我导航到另一个屏幕时我收到此错误:
无法对卸载的组件执行 React 状态更新。这是一个空操作,但它表明您的应用程序中存在内存泄漏。要修复,请取消 useEffect 清理函数中的所有订阅和异步任务。
你能告诉我如何解决这个错误,哪种方法是最好的方法setInterval,因为我认为我的方法不好。
我的自定义钩子:
export const useFetch = url => {
const [state, setState] = useState({ data: null, error: false, loading: true })
useEffect(() => {
setInterval(() => {
setState(state => ({ data: state.data, error: false, loading: true }))
fetch(url)
.then(data => data.json())
.then(obj =>
Object.keys(obj).map(key => {
let newData = obj[key]
newData.key = key
return newData
})
)
.then(newData …Run Code Online (Sandbox Code Playgroud) 我有react-native应用程序,它可以通过Google帐户运行。当我在 Android 模拟器上启动我的应用程序时,我无法登录 Google 帐户。收到错误消息:“与 Google 服务器通信时出现问题。请稍后重试”。我的复制步骤:
所有这些步骤对我来说都不起作用。每次都会遇到同样的情况:加载过程中,旋转器启动大约一分钟,然后出现错误:“无法登录”。有人可以帮我吗?
Macbook Air M1,在Xcode 12.4中出现错误:
无法下载并安装 IOS 12.0 模拟器。无法从 ADC 下载软件包。没有在 Xcode 中注册的有效帐户能够访问此资源。请联系 Apple 开发者计划支持来解决帐户访问问题。
我在以前的 Xcode 和 Intel 芯片上的 Macbook 上从未出现过此错误。请你告诉我如何解决它。
我有文件夹结构:
my_project
|------ modules.private
| |------ broker_module
| |------ BrokerModule.js
|
|------ src
| |------ AppService
| |------ AppService.js
|
| |------ Components
| |------ ScreenLogin.js
|
Run Code Online (Sandbox Code Playgroud)
我需要限制所有区域的 module.private 的绝对导入,除了“./src/AppService”。
情况无错误。Linted 文件是“./src/AppService/AppService.js”:
// NO ERROR
import { BrokerModule } from 'broker_module';
Run Code Online (Sandbox Code Playgroud)
有错误的情况。Linted 文件是“./src/componets/ScreenLogin.js”:
// Error: can not import broker_module to restricted zone
import { BrokerModule } from 'broker_module';
Run Code Online (Sandbox Code Playgroud)
我已经尝试过https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-restricted-paths.md,并制定了如下规则:
// the rule is interpreted like you can not import to target zone './src/components' from 'from': 'broker_module'
'rules': { …Run Code Online (Sandbox Code Playgroud) 我想在React Native应用程序中使用Apollo中间件对GraphQL 的每个请求之前实现自动刷新 jwt 令牌。每次用户登录后,他都会获得两个令牌:访问和刷新。访问令牌是在授权标头中使用的 30-60 分钟的短令牌。刷新令牌是确认刷新令牌 graphql 突变的 60 天长的令牌。我的流程:
GraphQL 突变
mutation UpdateTokens($refreshToken: String!, $refreshTokenId: String!)
{
updateTokens(refreshToken: $refreshToken, refreshTokenId: $refreshTokenId) {
user {
name
phone
}
accessToken
refreshToken
}
}
Run Code Online (Sandbox Code Playgroud)
应用程序.js
import React from 'react'
import …Run Code Online (Sandbox Code Playgroud) 在 React Native 应用程序的生产中,从 firebase 的 crashlytics 获取 Android 上的错误:
Fatal exception: com.facebook.react.uimanager.IllegalViewOperationException.
Trying to update non-existent view with tag 85273.
Run Code Online (Sandbox Code Playgroud)
并且没有崩溃的情况,因此无法检测到它。我在模拟器和真正的 Android 设备上检查了很多次。
我们从这次事故中发现了什么?
public void updateView(int tag, String className, ReadableMap props) {
ViewManager viewManager = mViewManagers.get(className);
if (viewManager == null) {
throw new IllegalViewOperationException("Got unknown view type: " + className);
}
ReactShadowNode cssNode = mShadowNodeRegistry.getNode(tag);
if (cssNode == null) {
throw new IllegalViewOperationException("Trying to update non-existent view with tag " + tag);
}
if …Run Code Online (Sandbox Code Playgroud) debugging crash-reports crashlytics react-native react-native-android
我有 React Native App。我安装了 react-native-vector-icons 库。在我在 Xcode 中收到此错误后:
多个命令产生“/Users/jocoders/Library/Developer/Xcode/DerivedData/openCalls-gtlsipogexxyteffomqvumgwiihd/Build/Products/Debug-iphonesimulator/openCalls.app/Fonts”:
我有React Native项目。当我构建Android版本时,我收到一个错误:无法将任务“copyDebugIconFonts”添加为具有该名称的任务已存在。在我的终端中,我有这个错误: FAILURE : Build failed with an exception。
其中:脚本“/Users/evgeniykireev/openCalls/node_modules/react-native-vector-icons/fonts.gradle”行:16
出了什么问题:无法将任务“copyDebugIconFonts”添加为具有该名称的任务已存在。
我的 build.gradle:
buildscript {
ext {
buildToolsVersion = "28.0.3"
minSdkVersion = 16
compileSdkVersion = 28
targetSdkVersion = 28
supportLibVersion = "28.0.0"
}
repositories {
google()
jcenter()
}
dependencies {
classpath("com.android.tools.build:gradle:3.4.1")
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
mavenLocal()
maven {
// All of React Native (JS, …Run Code Online (Sandbox Code Playgroud) 我需要转换两个具有相同长度的字符串数组:
const arr1 = ['Jessica', 'Ben', 'Samantha', 'John', 'Sandy'];
const arr2 = ['21', '45', '34', '90', '67'];
Run Code Online (Sandbox Code Playgroud)
最后我需要得到这个数组与特定的键名称,年龄:
const result = [
{ name: 'Jessica', age: '21'},
{ name: 'Ben', age: '45'},
{ name: 'Samantha', age: '34'},
{ name: 'John', age: '90' },
{ name: 'Sandy', age: '67' },
];
Run Code Online (Sandbox Code Playgroud)
你能告诉我我该怎么做吗?
react-native ×6
javascript ×3
android ×2
ios ×2
xcode ×2
arrays ×1
crashlytics ×1
debugging ×1
eslint ×1
eslintrc ×1
fonts ×1
function ×1
gmail ×1
graphql ×1
icons ×1
import ×1
jwt ×1
node.js ×1
react-hooks ×1
setinterval ×1
use-effect ×1