【ReactNative】Check the render method of ‘ExpoRoot’

React-Native
この記事は約3分で読めます。

ネットに転がってたApp.jsの中身をそのままコピペしてみたらこんなエラーが出てきました。

Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.

Check the render method of `ExpoRoot`.

This error is located at:
    in RootErrorBoundary (at withExpoRoot.js:25)
    in ExpoRoot (at renderApplication.js:40)
    in RCTView (at AppContainer.js:101)
    in DevAppContainer (at AppContainer.js:115)
    in RCTView (at AppContainer.js:119)
    in AppContainer (at renderApplication.js:39)

renderRoot
    [native code]:0
runRootCallback
    [native code]:0
renderApplication
    renderApplication.js:52:52
runnables.appKey.run
    AppRegistry.js:116:10
runApplication
    AppRegistry.js:197:26
callFunctionReturnFlushedQueue
    [native code]:0

とりあえず、ルートのファイルがおかしいから見てみろよ的な意味だと思ったので、コピペしたApp.jsを確認してみました。

//...なんかいっぱいインポート

function App() {
  return (
    ....
  );
}

はい、export してなかったですね。

そりゃ見つけられませんわ。

というわけで修正。

//...なんかいっぱいインポート

export default function App() {
  return (
    ....
  );
}

export defaultをつけたら無事に動きました。

コメント

タイトルとURLをコピーしました