是否可以将对象存储在React组件的状态中?如果是,那么我们如何使用setState?更改该对象中键的值?我认为在语法上不允许写下这样的东西:
this.setState({ abc.xyz: 'new value' });
Run Code Online (Sandbox Code Playgroud)
在类似的方面,我还有另一个问题:在React组件中有一组变量是否可以在组件的任何方法中使用它们,而不是将它们存储在一个状态中?
您可以创建一个包含所有这些变量的简单对象,并将其放置在组件级别,就像在组件上声明任何方法一样.
它很可能遇到这样的情况,即在代码中包含大量业务逻辑,并且需要使用许多变量,这些变量的值由多个方法更改,然后根据这些值更改组件的状态.
因此,您只需保留那些值应直接反映在UI中的变量,而不是将所有这些变量保留在状态中.
如果这种方法比我在这里写的第一个问题更好,那么我不需要在状态中存储一个对象.
我将 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,但没有任何改变。
Jelly Bean似乎不喜欢maxlength用于文本输入的HTML属性.它肯定会限制输入字符的数量,但是当您尝试键入超出允许的字符数时,文本框将失败.现在,您将无法键入任何其他文本框,也无法在该文本框中删除已输入的字符.
如果您还没有遇到过这种情况,那么请在简单的HTML上自行尝试并检查.请告诉我你是否有解决这个问题的线索.
我正在为使用 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
我正在尝试使用 Jest 对我的 React 代码进行单元测试,但我也在使用 requirejs,因此我所有的 React 代码都在 AMD 模块中。它显然在浏览器中运行良好,但是当我运行 Jest 测试时,它无法加载我的 AMD 模块。最初它给了我定义说的错误define is not defined,所以我使用了 Requirejs 的 amdefine 来修复它。现在它可以理解define但仍然无法加载我的模块。
我正在使用worklight开发混合应用程序,到目前为止,我的应用程序中只有几个屏幕.但是当我在我的Android手机中运行这个应用程序时,如果我检查apk文件,它的大小显示为4.4 MB!通过我的应用程序开发,我甚至不是20%,但它仍然很重.这是worklight的一个问题,还是在worklight中有一种方法可以保持您的应用轻量级?
android ×2
amd ×1
flutter-test ×1
javascript ×1
jestjs ×1
maxlength ×1
node.js ×1
npm ×1
npm-install ×1
reactjs ×1
requirejs ×1
unit-testing ×1
webview ×1