今から答えてくれてありがとう、
私はReact Nativeの初心者です。クロスプラットフォームアプリを作りたいのでindex.jsを作成しました:
import React from 'react';
import {
Component,
View,
Text,
} from 'react-native';
class ReactApp extends Component {
render() {
return (
<View><Text>Hello world</Text></View>
);
}
}
module.exports = ReactApp;
次に、index.ios.jsとindex.Android.jsの両方からindex.jsを次のようにインポートしました。
import { AppRegistry } from 'react-native';
import ReactApp from './index';
AppRegistry.registerComponent('ReactApp', () => ReactApp);
私はこの後うまくいくと思うが、このエラーが出る:
React v0.49の場合、index.ios.js
とindex.Android.js
は不要です。必要なのはindex.js
のみです:
import {AppRegistry} from 'react-native';
import App from './app/App';
AppRegistry.registerComponent('appMobile', () => App);
(appMobile
をアプリの名前に置き換えます)
ソース:( https://github.com/facebook/react-native/releases/tag/v0.49. )
新しいプロジェクトには、これからは単一のエントリポイント(index.js)があります
これについては逆方向に進んでいます。 index.ios.js
とindex.Android.js
は、常にデフォルトのreact-native init
プロジェクトの個別のエントリポイントになります。 index.js
を介して同じコードベースを実行したい場合は、index.ios.js
とindex.Android.js
をセットアップしてindex.js
をインポートし、index.js
で定義されているのと同じ基本コンポーネントを登録する必要があります。
たとえば、この ToDoアプリの例 ( Githubリポジトリ )でどのように実行されるかを見ることができます。
ルートフォルダーにindex.js
を配置すると、直接参照しない場合、index.Android.js
およびindex.ios.js
と競合します。そのため、インポートの正確なパスを指す必要があります。以下のコードを参照してください。
index.ios.jsおよびindex.Android.js(同じコンテンツ)
import React from 'react';
import { AppRegistry } from 'react-native'
import ReactApp from './index.js'
// Had you placed index.js in another folder like `./app`, you could instead do your import with this shorthand:
// import ReactApp from './app'
AppRegistry.registerComponent('ReactApp', () => ReactApp)
index.js
// Note: I noticed that you imported Component from the wrong place. That might also be contributing to your issue so I fixed it here.
import React, { Component } from 'react';
import {
View,
Text,
} from 'react-native';
// Unless you are exporting multiple things from a single file, you should just use this.
// It's more idiomatic than using module.exports = ReactApp;
export default class ReactApp extends Component {
render() {
return (
<View><Text>Hello world</Text></View>
);
}
}
IOS AppDelegate.mでこれを変更します
jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];
に
jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];