小编Rah*_*ole的帖子

将对象存储在React组件的状态中?

是否可以将对象存储在React组件的状态中?如果是,那么我们如何使用setState?更改该对象中键的值?我认为在语法上不允许写下这样的东西:

this.setState({ abc.xyz: 'new value' });
Run Code Online (Sandbox Code Playgroud)

在类似的方面,我还有另一个问题:在React组件中有一组变量是否可以在组件的任何方法中使用它们,而不是将它们存储在一个状态中?

您可以创建一个包含所有这些变量的简单对象,并将其放置在组件级别,就像在组件上声明任何方法一样.

它很可能遇到这样的情况,即在代码中包含大量业务逻辑,并且需要使用许多变量,这些变量的值由多个方法更改,然后根据这些值更改组件的状态.

因此,您只需保留那些值应直接反映在UI中的变量,而不是将所有这些变量保留在状态中.

如果这种方法比我在这里写的第一个问题更好,那么我不需要在状态中存储一个对象.

javascript reactjs

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

npm 错误 E401:无法进行身份验证,需要:BASIC realm="Sonatype Nexus Repository Manager"

我将 node 版本升级到 12.16.2,将 npm 版本升级到 6.14.4。之后我无法运行npm install,因为我收到此错误

 code E401
 npm ERR! Unable to authenticate, need: BASIC realm="Sonatype Nexus Repository Manager"
Run Code Online (Sandbox Code Playgroud)

我什至尝试删除 node_modules 和 package-lock.json 并再次运行 npm install,但没有任何改变。

node.js npm npm-install

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

Jelly Bean WebView与文本框的HTML maxlength属性不兼容

Jelly Bean似乎不喜欢maxlength用于文本输入的HTML属性.它肯定会限制输入字符的数量,但是当您尝试键入超出允许的字符数时,文本框将失败.现在,您将无法键入任何其他文本框,也无法在该文本框中删除已输入的字符.

如果您还没有遇到过这种情况,那么请在简单的HTML上自行尝试并检查.请告诉我你是否有解决这个问题的线索.

android maxlength webview android-4.2-jelly-bean

13
推荐指数
2
解决办法
9285
查看次数

如何在 Flutter 中模拟 VideoPlayerController.network()

我正在为使用 video_player 插件的视频播放器小部件编写一个简单的测试。我无法模拟视频控制器发出的用于通过网络获取视频的网络请求。我的小部件代码如下所示:

late VideoPlayerController _videoController;

@override
void initState() {
    _videoController = VideoPlayerController.network(widget.videoUrl);
// rest of the code
}
Run Code Online (Sandbox Code Playgroud)

和测试代码:

VideoPlayerController _videoController =
        VideoPlayerController.network(videoUrl);

    when(VideoPlayerController.network(videoUrl))
        .thenAnswer((_) => _videoController);
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为它无法正确地存根网络请求方法。有什么正确嘲笑它的想法吗?我的代码中还有其他几个测试,其中我模拟了发出网络请求的 api 客户端类,但这一个有点不同。我正在使用mockito进行嘲笑。

请帮忙!

unit-testing flutter-test flutter-video-player flutter-mockito

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

无法通过 Jest 加载 AMD 模块

我正在尝试使用 Jest 对我的 React 代码进行单元测试,但我也在使用 requirejs,因此我所有的 React 代码都在 AMD 模块中。它显然在浏览器中运行良好,但是当我运行 Jest 测试时,它无法加载我的 AMD 模块。最初它给了我定义说的错误define is not defined,所以我使用了 Requirejs 的 amdefine 来修复它。现在它可以理解define但仍然无法加载我的模块。

amd requirejs jestjs

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

IBM WorkLight应用程序不是轻量级的

我正在使用worklight开发混合应用程序,到目前为止,我的应用程序中只有几个屏幕.但是当我在我的Android手机中运行这个应用程序时,如果我检查apk文件,它的大小显示为4.4 MB!通过我的应用程序开发,我甚至不是20%,但它仍然很重.这是worklight的一个问题,还是在worklight中有一种方法可以保持您的应用轻量级?

android ibm-mobilefirst

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