小编Mar*_*vic的帖子

在构造函数或 ngOnInit 中加载异步函数

我想在构造函数或 ngOnInit() 中调用异步函数 readUsers()。虽然我从这里使用了推荐的 workaraound,但它仍然被延迟并且不会等待执行。

TypeScript 中的异步构造函数?

如何延迟/等待我的 readUsers() 函数的执行?

users: any[];

ngOnInit() {
    this.readUsers();
    //this.readUsers(); above is called delayed so this.users below is 
    //undefined
    console.log(this.users);
}


public readUsers = async () =>  {
    this.users = await this.userService.getUsers()
    .then(resolve=>{
        console.log("within async function");
        return resolve;
    })
    .catch(reject=>{
        return [];
    })
}


////////userService.getUsers() reads JSON Object from an endpoint (works!)
getUsers(): Promise<any> {
    return new Promise((resolve, reject) => {
        this.http
            .get('https://url.com/users/')
            .subscribe(users => {
                if (!users) {
                    reject([]);
                }
                resolve(users);
            });
    }); …
Run Code Online (Sandbox Code Playgroud)

promise async-await typescript angular

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

使用 useHistory、useLocation 钩子的钩子调用无效

应用程序.js:

import React from 'react';
import { Router, Route } from 'react-router-dom';
import Display from './Components/Display';

export function App() {
  return (
    <Router>
      <Route path="/" component={Display} />
    </Router>
  );
}
Run Code Online (Sandbox Code Playgroud)

显示.js

import React from 'react';
import { Router, Route } from 'react-router-dom';
import Display from './Components/Display';

export function App() {
  return (
    <Router>
      <Route path="/" component={Display} />
    </Router>
  );
}
Run Code Online (Sandbox Code Playgroud)

我在使用这些钩子时遇到了无效的钩子调用。

这是我的依赖项:

import React from 'react';
import { useLocation, useHistory } from 'react-router-dom';

function History() {
  let history = useHistory(); …
Run Code Online (Sandbox Code Playgroud)

reactjs react-router react-hooks

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

使用 Jest 测试/模拟 ReactComponent SVG 导入

ReactComponent例如,我将 SVG 导入到我的组件中,并将它们作为组件导入

import { ReactComponent as D1 } from '../../../assets/images/characteristics/D1.svg';
Run Code Online (Sandbox Code Playgroud)

当我运行 Jest/Enzyme 来测试组件时,出现以下错误

元素类型无效:需要一个字符串(对于内置组件)或一个类/函数(对于复合组件),但得到:未定义。您可能忘记从定义它的文件中导出组件,或者您可能混淆了默认导入和命名导入。

看来我需要嘲笑这个吗?我怎么能这么做呢?

svg reactjs jestjs enzyme react-component

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

scriptNode.onaudioprocess 已弃用,有其他选择吗?

我想在说话时获取音频缓冲区,我用这个方法来检测它,但是我收到消息这个方法 onaudioprocess 已被弃用并且不会被触发,是否有任何替代方法并举例说明。

audioContext = new AudioContext({ sampleRate: 16000 });
scriptNode = (audioContext.createScriptProcessor || audioContext.createJavaScriptNode).call(audioContext, 1024, 1, 1);
scriptNode.onaudioprocess = function (audioEvent) {
  if (recording) {
    input = audioEvent.inputBuffer.getChannelData(0);
    // convert float audio data to 16-bit PCM
    var buffer = new ArrayBuffer(input.length * 2);
    var output = new DataView(buffer);
    for (var i = 0, offset = 0; i < input.length; i++, offset += 2) {
      var s = Math.max(-1, Math.min(1, input[i]));
      output.setInt16(offset, s < 0 ? s * 0x8000 : …
Run Code Online (Sandbox Code Playgroud)

javascript audio buffer html5-audio audiocontext

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

React 构建 - 未找到:错误:无法解析“缓冲区”

当我在 React 中构建应用程序时遇到错误。仅当我尝试构建应用程序时,我才注意到此错误。

当我停止开发服务器并再次运行它时,它显示了相同的错误。看来我做了一些更改,仅在我再次启动服务器或进行构建时才显示:

找不到模块:错误:无法解析“\node_modules\htmlparser2\lib”中的“缓冲区”重大更改:webpack < 5 默认情况下用于包含 node.js 核心模块的 polyfill。现在不再是这种情况。验证您是否需要这些模块并为其配置一个polyfill。

如果你想包含一个polyfill,你需要安装“buffer”。如果你不想包含一个polyfill,你可以使用一个空模块,如下所示:resolve.alias: { "buffer": false }

错误 命令失败,退出代码为 1。

我的申请是用 CRA 和 Typescript 制作的。这是我的package.json:

{
  "name": "my-app",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "start": "react-scripts start",
    "build": "cross-env NODE_OPTIONS='--max-old-space-size=4096' react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "dependencies": {
    "@apollo/react-hooks": "^4.0.0",
    "@date-io/moment": "^1.3.13",
    "@material-ui/core": "^4.11.0",
    "@material-ui/icons": "^4.9.1",
    "@material-ui/lab": "^4.0.0-alpha.56",
    "@material-ui/pickers": "^3.2.10",
    "@optimizely/react-sdk": "^2.4.0",
    "apollo-boost": "^0.4.9",
    "classnames": "^2.2.6",
    "formik": "^2.2.5",
    "graphql": "^15.4.0",
    "lodash": "^4.17.20",
    "moment": "^2.29.1",
    "react": "^16.13.1", …
Run Code Online (Sandbox Code Playgroud)

reactjs jestjs enzyme react-scripts react-testing-library

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

使用 MinGW 编译的库可以与 MSVC 一起使用吗?

问题:
我将在 Visual Studio 项目中使用 MinGW 库。

我的系统是如何构建的:

我下载了适用于我的 Windows 10 系统的 ZBar 库( zbar-0.23.91-win_x86_64-DShow.zip
这是链接: https: //linuxtv.org/downloads/zbar/binaries/)。

我的 lib 和 bin 文件夹中有这些文件:

  • libzbar.a
  • libzbar.dll.a
  • libzbar.la
  • libzbar-0.dll

构建时出错:
错误LNK2019:snprintf中引用了无法解析的外部符号__mingw_vsnprintf

我的问题
使用 MinGW 编译的库可以与 MSVC 一起使用吗?

c++ linker mingw zbar

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

Angular Universal Render 等待 Http 结果 Observable Subscriber

我有一个调用 ASP.Net Web API 服务的 Angular Universal 应用程序。

我已经将控制台写入对 Web 服务的 Angular 调用(从组件的构造函数或 ngOnInit 启动,我都尝试过)和 Typescript 中的订阅者函数以及 Web API 方法。

运行应用程序时,我注意到 Angular Universal 应用程序不会等待 Web API 的结果。

我得到的最后一个控制台写入消息来自 Web API,而不是来自订阅者调用中的函数。

如何强制 Angular Universal 应用程序在完成渲染之前等待结果?

rxjs asp.net-web-api asp.net-core angular

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

Angular 2 中多个元素的一键式处理程序

假设我们有一个里面有 3 个链接的 div。

<div class="wrap">
    <a class="link">link1</a>
    <a class="link">link2</a>
    <a class="link">link3</a>
</div>
Run Code Online (Sandbox Code Playgroud)

为了分配在jQuery的链接点击处理程序,我们可以做水木清华这样的: $('.wrap a').on('click', callback);。

在 Angular2 中最好的方法是什么?

据我所知,我可以对每个链接使用一个简单的(点击),例如: <a class="link" (click)="callback()">,但对我来说它看起来很奇怪。另一种选择是使用指令并做 smth like <a class="link" [directive]="value">,我更喜欢 这个。

是否有更好的描述案例的实现?

javascript jquery angular2-directives angular

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

当中心状态改变时,React 传单中心属性不会改变

应用程序.js

import { useState } from 'react';

const App = () => {
  // This state is used to the center attribute of MapContainer component
  const [mapCenter, setMapCenter] = useState([34.80746, -40.4796]);
  // This state is used to the zoom attribute of MapContainer component
  const [mapZoom, setMapZoom] = useState(3);

  const onClickHandler = () => {
    setMapCenter([20, 100]);
    setMapZoom(5);
  };

  return (
    <>
      <button onClick={onClickHandler}>Change map's center location</button>
      <Map center={mapCenter} zoom={mapZoom} />
    </>
  );
};
Run Code Online (Sandbox Code Playgroud)

地图.js

import React from 'react';
import './Map.css'; …
Run Code Online (Sandbox Code Playgroud)

leaflet reactjs

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

TypeError:无法读取 null React Apollo 测试的属性“createEvent”

我收到一个错误,最终导致反应组件的测试崩溃。我使用 Apollo hook 进行突变useMutation,使用 Enzyme 通过 id 查找组件。

repo code\node_modules\react-dom\cjs\react-dom.development.js:154
      var evt = document.createEvent('Event'); // Keeps track of whether the user-provided callback threw an error. We
                         ^

TypeError: Cannot read property 'createEvent' of null
Run Code Online (Sandbox Code Playgroud)

成分

repo code\node_modules\react-dom\cjs\react-dom.development.js:154
      var evt = document.createEvent('Event'); // Keeps track of whether the user-provided callback threw an error. We
                         ^

TypeError: Cannot read property 'createEvent' of null
Run Code Online (Sandbox Code Playgroud)

测试

import React, { useEffect } from "react";
import { useMutation } from "@apollo/react-hooks";

export const MyComponent …
Run Code Online (Sandbox Code Playgroud)

typescript reactjs jestjs enzyme apollo-client

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