我正在开发一个反应原生的
IOS应用程序,这个应用程序有时会引发一条警告消息“setState(…)只能更新一个已挂载或正在安装的组件….”,我明白了这个消息是什么,它是由AJAX长时间调用引起的.
考虑到这个警告不会给APP造成任何严重问题,我不想花太多时间来修复它,此警告消息将在从开发服务器加载时出现在模拟器和手机中.我的问题是警告消息是否仍然会以产品模式提示(从预先捆绑的文件中加载)?如果它仍然显示,如何从配置中禁用此警告消息?
谢谢.
仅禁用setState消息
原文链接:https://www.f2er.com/react/300728.html“setState(…)只能更新已安装或安装的组件.”从4个可能的文件中抛出:
- node_modules/react/dist/react-with-addons.js
- node_modules/react/dist/react.js
- node_modules/react/lib/ReactNoopUpdateQueue.js
- node_modules/react/lib/ReactUpdateQueue.js
我不知道哪一个触发了您的,但您可以修改这些文件以不显示警告.如果您关注的是您的用户,也就是说在发布模式下,则dev标志为false,这意味着不会看到任何警告消息.
禁用所有警告
要禁用警告,只需在AppDelegate.m中更改此设置:
jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=true"];
至
jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=false"];
如果您正在使用预捆绑文件,则必须在捆绑时将dev指定为false:
react-native bundle --dev false --entry-file index.ios.js --bundle-output ios/main.jsbundle --platform ios