我正在開發一個反應原生IOS應用程序,並且此應用程序有時會引發警告消息「setState(...)只能更新已安裝或掛載的組件。 ...「,我明白這個消息是關於什麼的,這是由很長一段時間的AJAX調用引起的。如何在底部禁用反應本機警告消息
考慮到這個警告不會對APP造成任何嚴重問題,我不想在此刻花費很多時間修復它,這個警告信息會在從開發服務器加載的模擬器和手機上顯示。我的問題是,警告消息是否仍會在產品模式下提示(從預捆綁文件加載)?如果它仍然顯示,如何從配置中禁用此警告消息?
謝謝。
我正在開發一個反應原生IOS應用程序,並且此應用程序有時會引發警告消息「setState(...)只能更新已安裝或掛載的組件。 ...「,我明白這個消息是關於什麼的,這是由很長一段時間的AJAX調用引起的。如何在底部禁用反應本機警告消息
考慮到這個警告不會對APP造成任何嚴重問題,我不想在此刻花費很多時間修復它,這個警告信息會在從開發服務器加載的模擬器和手機上顯示。我的問題是,警告消息是否仍會在產品模式下提示(從預捆綁文件加載)?如果它仍然顯示,如何從配置中禁用此警告消息?
謝謝。
要禁用只的setState消息
的 「的setState(...)只能更新一安裝或安裝部件。」從4個可能的文件拋出:
- node_modules /反應/ DIST /反應與 - addons.js
- node_modules /反應/ DIST/react.js
- node_modules /反應/ LIB/ReactNoopUpdateQueue .js文件
- node_modules /反應/ lib中/ ReactUpdateQueue.js
我不知道是哪一個觸發你的,但你可以修改這些文件不要顯示警告。如果您的關注是針對您的用戶的,也就是說在發佈模式下,那麼dev標誌爲false,這意味着不會看到任何警告消息。如果您使用的預
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"];
:
要禁用所有警告
要禁用警告,只是改變這在你的AppDelegate.m捆綁文件,捆綁時必須將dev指定爲false:
react-native bundle --dev false --entry-file index.ios.js --bundle-output ios/main.jsbundle --platform ios
這將工作,但也將關閉所有其他警告,其中一些是非常有用的 –
非常感謝答覆,它的工作原理。 – mailme365
任何人都知道Android的等價物是什麼jsCodeLocation = [NSURL URLWithString:@「http:// localhost:8081/index.ios.bundle?platform = ios&dev = false」]; – Podgeypoos
只是爲了回答您提問的問題,不,從預捆綁文件加載時(如使用TestFlight進行測試時),警告不會顯示。
更好的解決方案是在你的index
文件中這樣寫:
console.disableYellowBox = true;
要禁用僅此警告信息使用上可能的文件
console.ignoredYellowBox = ['Warning: setState(...)'];
在釋放模式開發=假消息如下代碼沒有顯示,所以你的應用商店的用戶將看不到消息 –