小编And*_* D_的帖子

如何在 MetaMask 上触发更改区块链网络请求

我正在使用 web3 进行第一次 dapp 测试,如果尚未选择,MetaMask 会提示用户将网络更改为 Binance (BSC) 网络,如下所示:

元掩码请求更改网络

如何触发这样的请求?

javascript ethereum web3js metamask

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

在 Material UI 中使用 Skeleton 时,如何修复错误“alpha”未从“@material-ui/core/styles”导出

我正在使用 Material UI,但在使用 Skeleton 组件的 Ubuntu 上遇到了严重的错误。在 Windows 上我没有收到此错误并且一切正常,但在 Ubuntu 上我收到以下错误:

./node_modules/@material-ui/lab/esm/Skeleton/Skeleton.js
Attempted import error: 'alpha' is not exported from '@material-ui/core/styles'.
Run Code Online (Sandbox Code Playgroud)

导入取自官方文档:

import Skeleton from '@material-ui/lab/Skeleton';
Run Code Online (Sandbox Code Playgroud)

在 Windows package.json 上,我的依赖项是这些,并且一切正常:

"@material-ui/core": "^4.11.4",
"@material-ui/icons": "^4.11.2"
Run Code Online (Sandbox Code Playgroud)

在 Ubuntu 上,它告诉我实验室丢失了(它实际上是骨架应该在的位置,我不知道为什么在 Windows 上它可以工作,尽管没有安装实验室),所以当我在 Ubuntu 上安装实验室后,package.json这是:

"@material-ui/core": "^4.11.4",
"@material-ui/icons": "^4.11.2",
"@material-ui/lab": "^4.0.0-alpha.60"
Run Code Online (Sandbox Code Playgroud)

这就是我在顶部提到的错误的地方。

知道为什么会发生这种情况吗?

reactjs material-ui

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

如何通过 Web3-react 保持 MetaMask 与 UI 的连接持久?

我正在使用 web3-react,但我不知道如何在浏览器刷新时保持与 MetaMask 钱包的连接持续。

这是代码:

// define the injectedConnectors

const injectedConnector = new InjectedConnector({
  supportedChainIds: [
    1, // Mainet
    3, // Ropsten
    4, // Rinkeby
    5, // Goerli
    42, // Kovan
  ],
})

const { chainId, account, activate, active } = useWeb3React()
// activate the wallet
activate(injectedConnector)
console.log(account)
// all good. 
Run Code Online (Sandbox Code Playgroud)

到目前为止,一切正常,我激活了我的 MetaMask 钱包,并且正确记录了帐户,并且 active 变量是一个布尔值,会更改为 true。

问题是,当我刷新页面时,活动变为 false,并且我失去了 UI 与 MetaMask 钱包之间的连接。当然,将活动保存到浏览器中不会改变任何内容,因为连接依赖于活动布尔值。

文档缺乏此类信息。

reactjs ethereum metamask web3-react

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

如何修复 Windows 10 上启动时出现的 Docker 错误 System.InvalidOperationException?

我安装了适用于 Windows 10 家庭版的 Docker 桌面(版本 10.0.19042),但我始终无法使其工作,因为我不断收到此错误: 在此输入图像描述

Microsoft.NET框架是最新版本。安装 Docker 时,我还勾选了该框以安装所有必需的 WSL 组件。这是来自 Docker 的错误消息:

System.InvalidOperationException:
Failed to set version to docker-desktop: exit code: -1
 stdout: The attempted operation is not supported for the type of object referenced.


 stderr: 
   at Docker.ApiServices.WSL2.WslShortLivedCommandResult.LogAndThrowIfUnexpectedExitCode(String prefix, ILogger log, Int32 expectedExitCode) in C:\workspaces\PR-16599\src\github.com\docker\pinata\win\src\Docker.ApiServices\WSL2\WslCommand.cs:line 146
   at Docker.Engines.WSL2.WSL2Provisioning.<ProvisionAsync>d__8.MoveNext() in C:\workspaces\PR-16599\src\github.com\docker\pinata\win\src\Docker.Engines\WSL2\WSL2Provisioning.cs:line 81
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Docker.Engines.WSL2.LinuxWSL2Engine.<DoStartAsync>d__29.MoveNext() in C:\workspaces\PR-16599\src\github.com\docker\pinata\win\src\Docker.Engines\WSL2\LinuxWSL2Engine.cs:line 194
--- End of stack …
Run Code Online (Sandbox Code Playgroud)

docker windows-subsystem-for-linux

5
推荐指数
2
解决办法
3570
查看次数

如何让useEffect监听localStorage的任何变化?

我试图让我的 React 应用程序从 localStorage 获取 todos 对象数组并将其交给 setTodos。为此,我需要有一个 useEffect 来监听本地存储中发生的任何更改,所以这就是我所做的:

  useEffect(() => {
      if(localStorage.getItem('todos')) {
        const todos = JSON.parse(localStorage.getItem('todos'))
        setTodos(todos);
      }
  }, [ window.addEventListener('storage', () => {})]);
Run Code Online (Sandbox Code Playgroud)

问题是每次我从 localStorage 添加或删除某些内容时都不会触发 useEffect 。这是让 useEffect 监听 localStorage 的错误方法吗?

我尝试了此处解释的解决方案,但它对我不起作用,我真诚地不明白为什么它应该起作用,因为监听器没有作为 useEffect 中的第二个参数传递

javascript reactjs

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

如何使用按位运算符 &amp; 评估偶数和奇数

我正在尝试使用按位运算符 & 来评估数组中的数字是偶数还是奇数。

这是我的代码:

    arr = [1, 2, 4, 6, 9, 11, 18, 361, 5622, 5623]
    arr.forEach(function (el) {
        if (parseInt(el.toString(2)) & 1 === 0) {
            console.log(`${el} in binary is ${el.toString(2)} and it is an EVEN number`);
        } else {
            console.log(`${el} in binary is ${el.toString(2)} and it is an ODD number`);
        }
    });
Run Code Online (Sandbox Code Playgroud)

单独取每个元素,每个元素返回 0 或 1,这将评估一个数字是偶数还是奇数,但在这种情况下,它们都返回奇数。这是我得到的结果:

二进制中的 1 是 1,它是一个奇数

二进制中的 2 是 10,它是一个奇数

二进制中的 4 是 100,它是一个奇数

等等...

我哪里做错了?

javascript binary foreach loops

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

如何解决 Gulp 错误:imagemin.jpegtran is not a function

每当我尝试使 imagemin 适用于任何类型的图像时,我都会收到此错误:

21:54:49] 开始'imgmin'...

[21:54:49] 'imgmin' 在 47 毫秒后出错

[21:54:49] 类型错误:imagemin.jpegtran 不是函数

at imgmin (D:\Dropbox\Side Projects\JS learning\dev-gulp\gulpfile.js:92:26)

at bound (domain.js:419:14)

at runBound (domain.js:432:12)

at asyncRunner (D:\Dropbox\Side Projects\JS learning\dev-gulp\node_modules\async-done\index.js:55:18)

at processTicksAndRejections (internal/process/task_queues.js:75:11)
Run Code Online (Sandbox Code Playgroud)

我目前正在使用:

  • 节点版本 12.13.1
  • npm 版本 6.12.1
  • gullp cli 版本:2.2.0
  • gulp 本地版本:4.0.2

这是我的 gulpfile.js:

let mainDir = 'gulp project test';

let gulp = require('gulp'),
    browserSync = require('browser-sync').create(),
    reload = browserSync.reload,
    autoprefixer = require('gulp-autoprefixer'),
    sass = require('gulp-sass'),
    cleansCSS = require('gulp-clean-css'),
    sourcemaps = require('gulp-sourcemaps'),
    concat = require('gulp-concat'),
    imagemin = require('gulp-imagemin'),
    changed …
Run Code Online (Sandbox Code Playgroud)

javascript gulp gulp-imagemin

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

使用 Jest 测试 Express 时,有没有办法修复此“TypeError:express.json 不是函数”?

我正在尝试学习如何在express.js 上运行 Jest 测试,但收到此错误

TypeError: express.json is not a function 
Run Code Online (Sandbox Code Playgroud)

但是,如果我注释掉 index.js 中的这两行:

app.use(express.json({limit: '50mb'}));
app.use(express.urlencoded({limit: '50mb', extended: true}));
Run Code Online (Sandbox Code Playgroud)

然后它就会工作并通过前两个测试。我该如何修复这个错误?

这里是index.js

这里是index.test.js

unit-testing backend node.js express jestjs

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

需要 dotenv 时如何修复“require(...).config(...) is not a function”错误

我在使用 dotenv 时遇到此错误:

(async () => {
^
TypeError: require(...).config(...) is not a function
Run Code Online (Sandbox Code Playgroud)

Evertyghing 工作正常,直到我需要 dotenv。

这是代码

const puppeteer = require('puppeteer');
const fs = require('fs');
require('dotenv').config()

(async () => {
  const browser = await puppeteer.launch({
    headless: false,
    args: ['--start-maximized'],
    defaultViewport: null,
  });

  const page = await browser.newPage();
  ...more code here
})()
Run Code Online (Sandbox Code Playgroud)

Dotenv 已正确安装:

  "dependencies": {
    "dotenv": "^8.2.0",
    "puppeteer": "^5.3.1"
  }
Run Code Online (Sandbox Code Playgroud)

require typeerror node.js puppeteer dotenv

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

如何使用Puppeteer获取图像的src属性?我收到“无法读取 null 的属性“getAttribute””错误

我正在与 Puppeteer 合作并尝试下载图像。在 Chrom 开发工具控制台上,这会返回我想要的内容:

document.querySelector('.photo img').getAttribute('src')
Run Code Online (Sandbox Code Playgroud)

但使用 Puppeteer 评估函数相同的代码:

let imageSrc = await page.evaluate(() => {
  return document.querySelector('.photo img').getAttribute('src');
});
Run Code Online (Sandbox Code Playgroud)

抛出错误:

error:  Error: Evaluation failed: TypeError: Cannot read property 'getAttribute' of null
Run Code Online (Sandbox Code Playgroud)

知道为什么会发生这种情况吗?

javascript node.js puppeteer

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