反応ネイティブを始めたばかりで、create-react-native-app
を使用して基本アプリを作成しました。
私はいくつかの再構築を行い、いくつかの新しいフォルダーを作成し、App.jsの名前をHome.jsに変更しました。新しいapp.json
ファイルを参照するエントリポイントが含まれるようにHome.js
を変更しました。アプリをロードしても何も起こりません。エラーはなく、エキスポ画面に表示されたままです。
.
-components
-screens
-Home
Home.js
-config
-node_modules
-tests
app.json
app.jsonファイル:
{
"expo": {
"sdkVersion" : "23.0.0",
"entryPoint" : "./screens/Home/Home.js"
}
}
アプリのエントリポイントをどのように定義しますか?
expoを使用している場合は、次のように_app.json
_ファイルでエントリポイントを指定する必要があります。
_{
"expo": {
"entryPoint": "./src/app/index.js"
}
}
_
次に、そのファイル内でアプリをExpo.registerRootComponent(YOUR_MAIN_APP_COMPONENT)
に登録する必要があります
_import Expo from 'expo'
...
class App extends Component {
...
}
export default Expo.registerRootComponent(App);
_
これにより、エントリファイルを好きな場所に追加できます。
entryPoint
が_app.json
_への新しいパスになるように、_App.js
_を更新する必要があります。
_{
"expo": {
"entryPoint": "./src/App.js",
...
}
}
_
ただし、Expo.registerRootComponent(App)
を使用すると、SDK 32で次のエラーが発生します。
_undefined is not an object (evaluating '_expo.default.registerRootComponent')
_
_Expo.registerRootComponent
_を介してアクセスしようとするのではなく、registerRootComponent
を明示的にインポートすることでfixedにすることができます。
以下は_App.js
_のサンプルです。
_import { registerRootComponent } from 'expo';
class App extends React.Component {
...
}
export default registerRootComponent(App);
_
現在のExpoのドキュメントによると、App.js
ファイルとは異なるエントリポイントが必要な場合は、package.json
を更新できます-目的のエントリポイントへのパスでmain
フィールドを追加します。次に、エントリポイントファイル内で、アプリのrootコンポーネントも登録する必要があります。エントリポイントが指定されておらず、App.js
ファイルの場合、Expoはこれを自動的に実行していました
package.json
{
"main": "my/customEntry.js"
}
entryPointFile.js
import { registerRootComponent } from 'expo';
import MyRootComponent from './MyRoot';
registerRootComponent(MyRootComponent);
メインアプリファイルにApp.js以外の名前を付けたい場合はどうすればよいですか? - https://docs.expo.io/versions/latest/sdk/register-root-component/#what-if-i-want-to-name-my
反応ネイティブスクリプトでプロジェクトを作成しました。 app(App.js)のデフォルトのエントリポイントでは、エントリからインポートするAppをエクスポートします。
- node_modules
- App.js
- build
- main.js
ファイルApp.js:
import App from './build/main'
export default App
また、たとえばsrc /のように、すべてのソースを別のフォルダに置くことを好み、別の解決策を見つけました。
import App from './App';
に変更して、ポイントするようにしました* src/App.tsx`にここで実際の例を見てください https://github.com/fibo/tris3d-app/blob/master/src/expoAppEntry.js