2016-01-20 3 views
2

я просто добавилЯ только что добавил var React = require ('react-native'); и вся моя сборка не удалось

var React = require('react-native'); 

к моему index.ios.js файл, но когда я перезагрузить My Реагировать родное приложение, это приходит:

It says React is read-only?!

Я попытался изменить разрешения для модуля с активной реакцией, выполнив

sudo chmod -R 777 ExampleProject 
sudo chmod -R 777 ExampleProject/node_modules/react-native 

но i t все еще не работает. Что я сделал не так?


Это полный исходный код моего index.ios.js файла:

* Sample React Native App 
* https://github.com/facebook/react-native 
*/ 
'use strict'; 

var React = require('react-native'); 

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

class Logbook 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 index.ios.js 
    </Text> 
    <Text style={styles.instructions}> 
     Press Cmd+R to reload,{'\n'} 
     Cmd+D or shake for dev menu 
    </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, 
}, 
}); 

AppRegistry.registerComponent('Logbook',() => Logbook); 
+0

Вы можете включать весь код своего 'index.ios.js' файл? –

+0

Несомненно @DaveSibiski –

ответ

4

Вы на самом деле импорт реагирующие родной два раза. Во второй раз он жалуется. Просто избавиться от

var React = require('react-native'); 

Это делает то же самое, но с модулем синтаксисом ES6

import React from 'react-native'; 
+0

Спасибо! Но почему они реализуют его два раза в официальных документах? И почему он говорит, что «Реакт» доступен только для чтения? @dvine –

+0

Я думаю, вы только что обнаружили ошибку в документах :) Может быть, вам стоит открыть проблему или файл PR. Я могу это сделать, если вы захотите. Я не уверен на 100% об ошибке, но я думаю, что модули генерируют глобальные константы где-то. Обычно, когда вы дважды импортируете тот же модуль, он просто берет уже импортированный модуль из кеша. Но так как вы использовали два разных загрузчика модулей для загрузки одного и того же модуля, это как-то не сработало. –

+0

Где в документах вы действительно видели это? –