2017-04-27 4 views
-1

反応ネイティブを0.42から0.43にアップグレードしようとしましたが、重大なエラーや競合はなく、 しかし、私はシミュレータで私のアプリケーションを実行すると、画面の下部に警告ボックス(黄色のもの)をクリックすると、突然アプリケーションがクラッシュします。 ReactNativeはエラーログを出力しないので、xcodeで試してみました。 エラーログは次のとおりですアップグレード後のネイティブ0.43に反応します:警告ボックス(下の黄色のボックス)をクリックするとアプリケーションがクラッシュします

2017-04-12 19:18:06.838 [error][tid:main][UIView+React.m:173] Invalid 
layout for (15)<RCTScrollView: 0x7ffa34e3cb70; reactTag: 15; frame = (0 
233; 414 0); clipsToBounds = YES; layer = <CALayer: 0x600000223fc0>>. 
position: {207, nan}. bounds: {{0, 0}, {414, nan}} 
2017-04-12 19:18:06.844 MyProject[17665:385202] *** Terminating app due 
to uncaught exception 'CALayerInvalidGeometry', reason: 'CALayer 
position contains NaN: [0 nan]' 
*** First throw call stack: 
(
0 CoreFoundation 0x0000000112136d4b __exceptionPreprocess + 171 
1 libobjc.A.dylib 0x0000000110b9921e objc_exception_throw + 48 
2 CoreFoundation 0x00000001121a02b5 +[NSException raise:format:] + 197 
3 QuartzCore 0x00000001146aef92 _ .ZN2CA5Layer12set_positionERKNS_4Vec2IdEEb + 152 
4 QuartzCore 0x00000001146af107 -[CALayer setPosition:] + 44 
5 QuartzCore 0x00000001146af772 -[CALayer setFrame:] + 650 
6 UIKit 0x0000000114d079b4 -[UIWebDocumentView _notifyContentHostingLayersOfScaleChange] + 111 
7 UIKit 0x0000000114d02b61 -[UIWebDocumentView setFrame:] + 287 
8 UIKit 0x00000001150dfc95 -[UIWebBrowserView setFrame:] + 199 
9 UIKit 0x0000000114d50fc9 -[UIWebView _frameOrBoundsChanged] + 508 
10 UIKit 0x0000000114d51096 -[UIWebView setFrame:] + 166 
11 MyProject 0x000000010ff121d9 -[RCTWebView layoutSubviews] + 185 
12 UIKit 0x0000000114a8bab8 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1237 
13 QuartzCore 0x00000001146b8bf8 -[CALayer layoutSublayers] + 146 
14 QuartzCore 0x00000001146ac440 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 366 
15 QuartzCore 0x00000001146ac2be _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 24 
16 QuartzCore 0x000000011463a318 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 280 
17 QuartzCore 0x00000001146673ff _ZN2CA11Transaction6commitEv + 475 
18 QuartzCore 0x0000000114667d6f _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 113 
19 CoreFoundation 0x00000001120db267 CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION + 23 
20 CoreFoundation 0x00000001120db1d7 __CFRunLoopDoObservers + 391 
21 CoreFoundation 0x00000001120bff8e __CFRunLoopRun + 1198 
22 CoreFoundation 0x00000001120bf884 CFRunLoopRunSpecific + 420 
23 GraphicsServices 0x0000000117c3ea6f GSEventRunModal + 161 
24 UIKit 0x00000001149c6c68 UIApplicationMain + 159 
25 MyProject 0x000000010fe3c5cf main + 111 
26 libdyld.dylib 0x000000011639b68d start + 1 
27 ??? 0x0000000000000001 0x0 + 1 
) 
libc++abi.dylib: terminating with uncaught exception of type NSException 
(lldb) 

ありますか?

更新日: ios/buildフォルダを削除するだけでクラッシュが解決されました! 私は新しい質問があります。黄色の警告ボックスをクリックすると、画面内のビューが消え、警告ボックスを閉じて再び表示されます。私は、警告ボックスが半透明であると信じて、ネイティブの0.42に反応するまで、黄色のボックスを通して私の画面内のビューを見ることができました。

私は反応ネイティブinitを使って全く新しいプロジェクトを試みました。

export default class Test extends Component { 
    render() { 
    const data = [1,2,3,4,5]; 
    return (
     <View style={{flex: 1}} onLayout={e =>console.log(e.nativeEvent.layout.height)}> 
     <Text style={styles.instructions}> 
     Press Cmd+R to reload,{'\n'} 
     Cmd+D or shake for dev menu 
     </Text> 
    <ScrollView style={styles.container} onLayout={(e) => console.log(e.nativeEvent.layout.height)}> 
    <View style={{backgroundColor: 'red', flex: 1}}> 
     <Text style={styles.welcome}> 
     Welcome to React Native! 
     </Text> 
     {data.map(d => <Text>{d}</Text>)} 
     <Text style={styles.instructions}> 
     To get started, edit index.ios.js 
     </Text> 
    </View> 
    </ScrollView> 
    </View> 
); 
    } 
} 

上記のコードは、data.map関数から返されたビューで 'key prop'に関する警告メッセージを生成します。 最大化するために黄色のボックスをクリックすると、2つのonLayout関数はボックスを閉じると再び '0'と実際の値を出力します。 反応原産であることを意図していますか?

+0

関連するコードも共有してください。 – dmorrow

+0

@dmorrow申し訳ありませんが、これは警告ボックスをクリックしたときのエラーです。どのようなコードですか? – hjh5696

+0

@dmorrow質問を更新しました – hjh5696

答えて

関連する問題