首页 文章

React Native项目,index.ios.js或index.android.js未生成

提问于
浏览
20

我今天开始使用React-Native . 我正在关注网络教程 .

我的Windows机器上的所有安装是否正确:

  • Java Jdk

  • Android Studio

  • 节点/ NPM

  • 纱线

然后安装react-native

npm install -g react-native-cli

最后一个问候世界项目

react-native init albums

我没有收到任何错误 . 我的应用程序完全在我的Android手机上运行(基本上已加载) .

app.js在平台选择上有点条件:

/**
 * Sample React Native App
 * https://github.com/facebook/react-native
 * @flow
 */

import React, { Component } from 'react';
import {
  Platform,
  StyleSheet,
  Text,
  View
} from 'react-native';

const instructions = Platform.select({
  ios: 'Press Cmd+R to reload,\n' +
    'Cmd+D or shake for dev menu',
  android: 'Double tap R on your keyboard to reload,\n' +
    'Shake or press menu button for dev menu',
});

export default class App extends Component<{}> {
  render() {
    return (
      <View style={styles.container}>
        <Text style={styles.welcome}>
          Welcome to React Native!
        </Text>
        <Text style={styles.instructions}>
          To get started, edit App.js
        </Text>
        <Text style={styles.instructions}>
          {instructions}
        </Text>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
  },
  welcome: {
    fontSize: 20,
    textAlign: 'center',
    margin: 10,
  },
  instructions: {
    textAlign: 'center',
    color: '#333333',
    marginBottom: 5,
  },
});

我只是想知道这是否正常,不能生成这些文件 . 我要创建这两个索引文件吗?或者最新的react-native不需要2个单独的文件? (我关注的教程是2017年1月)

The Project structure

2 回答

  • 40

    这是为react-native添加的新功能 . 新项目模板现在不包含两个单独的文件 . 如果您愿意,您仍然可以像以前一样创建和使用,但是按照原样使用它是正常的 . 它只是一个偏好和您的项目的要求 . 您可以在here上找到有关更改的更多信息 .

    从提交说明

    此更改(最初在react-community / create-react-native-app#26中讨论)将HelloWorld项目模板从两个几乎相同的入口点(index.android.js和index.ios.js)移动到单个,最小化index.js入口点 . 根组件在App.js中创建 . 这统一了react-native init和Create React Native App之间的项目结构,并允许CRNA的弹出使用来自HelloWorld模板的入口点而没有任何黑客来定制它 . 此外,文档中的示例可以在HelloWorld和CRNA应用程序中以相同的方式复制粘贴到App.js,而无需首先了解AppRegistry.registerComponent .

  • 0

    仅仅因为新项目模板现在不单独包含index.android.js和index.ios.js . 它现在只包含一个最小的index.js入口点 .

    如果你想为两个/其中一个平台做一些特定的事情,那么你可以创建自己的index.android.js和index.ios.js文件,然后从index.js文件中导入两个代码并执行那里必要的变化 .

    index.android.js和index.ios.js可以写成:

    import Render from './App';
    
    export default Render;
    

相关问题