如何禁用底部的反应原生警告消息

mai*_*365 7 react-native

我正在开发一个反应原生的IOS应用程序,这个应用程序有时会引发一条警告消息"setState(...)只能更新一个已挂载或正在安装的组件....",我明白了这个消息是什么,它是由AJAX长时间调用引起的.

考虑到这个警告不会给APP造成任何严重问题,我不想花太多时间来修复它,此警告消息将在从开发服务器加载时出现在模拟器和手机中.我的问题是警告消息是否仍然会以产品模式提示(从预先捆绑的文件中加载)?如果它仍然显示,如何从配置中禁用此警告消息?

谢谢.

Far*_*uti 9

更好的解决方案是在您的index文件中写入:

console.disableYellowBox = true;
Run Code Online (Sandbox Code Playgroud)


G. *_*ide 1

仅禁用 setState 消息

“setState(...) 只能更新已安装或正在安装的组件。” 从 4 个可能的文件中抛出:

  1. node_modules/react/dist/react-with-addons.js
  2. node_modules/react/dist/react.js
  3. node_modules/react/lib/ReactNoopUpdateQueue.js
  4. node_modules/react/lib/ReactUpdateQueue.js

我不知道哪一个触发了您的文件,但您可以修改这些文件以不显示警告。如果您关心的是您的用户,也就是说在发布模式下,那么 dev 标志为 false,这意味着不会看到任何警告消息。

禁用所有警告

要禁用警告,只需在 AppDelegate.m 中更改此设置:

jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=true"];
Run Code Online (Sandbox Code Playgroud)

jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=false"];
Run Code Online (Sandbox Code Playgroud)

如果您使用预捆绑文件,则必须在捆绑时将 dev 指定为 false :

react-native bundle --dev false --entry-file index.ios.js --bundle-output ios/main.jsbundle --platform ios
Run Code Online (Sandbox Code Playgroud)