Skip to content

Commit

Permalink
replace require with es6 import in docs
Browse files Browse the repository at this point in the history
Reviewed By: svcscm

Differential Revision: D2936839

fb-gh-sync-id: 7a921709a37de5e9aadf324d5438d51851326348
shipit-source-id: 7a921709a37de5e9aadf324d5438d51851326348
  • Loading branch information
knowbody authored and facebook-github-bot-7 committed Feb 14, 2016
1 parent 2260d90 commit 3ae99d0
Show file tree
Hide file tree
Showing 11 changed files with 35 additions and 38 deletions.
7 changes: 3 additions & 4 deletions docs/Animations.md
Original file line number Diff line number Diff line change
Expand Up @@ -344,7 +344,7 @@ your project, you will need to install it with `npm i react-tween-state
--save` from your project directory.
```javascript
var tweenState = require('react-tween-state');
import tweenState from 'react-tween-state';

var App = React.createClass({
mixins: [tweenState.Mixin],
Expand Down Expand Up @@ -402,7 +402,7 @@ the middle of a press, it will animate back from the current state to
the original value.
```javascript
var rebound = require('rebound');
import rebound from 'rebound';

var App = React.createClass({
// First we initialize the spring and add a listener, which calls
Expand Down Expand Up @@ -532,8 +532,7 @@ make them customizable, React Native exposes a
[NavigatorSceneConfigs](https://github.com/facebook/react-native/blob/master/Libraries/CustomComponents/Navigator/NavigatorSceneConfigs.js) API.
```javascript
var React = require('react-native');
var { Dimensions } = React;
import { Dimensions } from 'react-native';
var SCREEN_WIDTH = Dimensions.get('window').width;
var BaseConfig = Navigator.SceneConfigs.FloatFromRight;

Expand Down
9 changes: 4 additions & 5 deletions docs/CommunicationIOS.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,10 @@ RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
```
'use strict';
var React = require('react-native');
var {
import React, {
View,
Image
} = React;
} from 'react-native';
class ImageBrowserApp extends React.Component {
renderImage: function(imgURI) {
Expand Down Expand Up @@ -100,8 +99,8 @@ Events are described in detail in [this article](docs/native-components-ios.html

Events are powerful, because they allow us to change React Native components without needing a reference to them. However, there are some pitfalls that you can fall into while using them:

* As events can be sent from anywhere, they can introduce spaghetti-style dependencies into your project.
* Events share namespace, which means that you may encounter some name collisions. Collisions will not be detected statically, what makes them hard to debug.
* As events can be sent from anywhere, they can introduce spaghetti-style dependencies into your project.
* Events share namespace, which means that you may encounter some name collisions. Collisions will not be detected statically, what makes them hard to debug.
* If you use several instances of the same React Native component and you want to distinguish them from the perspective of your event, you'll likely need to introduce some kind of identifiers and pass them along with events (you can use the native view's `reactTag` as an identifier).

The common pattern we use when embedding native in React Native is to make the native component's RCTViewManager a delegate for the views, sending events back to JavaScript via the bridge. This keeps related event calls in one place.
Expand Down
5 changes: 2 additions & 3 deletions docs/EmbeddedAppAndroid.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,11 +128,10 @@ Copy & paste the following code to `index.android.js` in your root folder — it
```js
'use strict';

var React = require('react-native');
var {
import React, {
Text,
View
} = React;
} from 'react-native';

class MyAwesomeApp extends React.Component {
render() {
Expand Down
5 changes: 2 additions & 3 deletions docs/EmbeddedAppIOS.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,11 +66,10 @@ Copy & paste following starter code for `index.ios.js` – it’s a barebones Re
```
'use strict';
var React = require('react-native');
var {
import React, {
Text,
View
} = React;
} from 'react-native';
var styles = React.StyleSheet.create({
container: {
Expand Down
8 changes: 4 additions & 4 deletions docs/NativeComponentsAndroid.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ Views are created in the `createViewInstance` method, the view should initialize

## 3. Expose view property setters using `@ReactProp` (or `@ReactPropGroup`) annotation

Properties that are to be reflected in JavaScript needs to be exposed as setter method annotated with `@ReactProp` (or `@ReactPropGroup`). Setter method should take view to be updated (of the current view type) as a first argument and property value as a second argument. Setter should be declared as a `void` method and should be `public`. Property type sent to JS is determined automatically based on the type of value argument of the setter. The following type of values are currently supported: `boolean`, `int`, `float`, `double`, `String`, `Boolean`, `Integer`, `ReadableArray`, `ReadableMap`.
Properties that are to be reflected in JavaScript needs to be exposed as setter method annotated with `@ReactProp` (or `@ReactPropGroup`). Setter method should take view to be updated (of the current view type) as a first argument and property value as a second argument. Setter should be declared as a `void` method and should be `public`. Property type sent to JS is determined automatically based on the type of value argument of the setter. The following type of values are currently supported: `boolean`, `int`, `float`, `double`, `String`, `Boolean`, `Integer`, `ReadableArray`, `ReadableMap`.

Annotation `@ReactProp` has one obligatory argument `name` of type `String`. Name assigned to the `@ReactProp` annotation linked to the setter method is used to reference the property on JS side.

Expand All @@ -72,12 +72,12 @@ Setter declaration requirements for methods annotated with `@ReactPropGroup` are
public void setSrc(ReactImageView view, @Nullable String src) {
view.setSource(src);
}

@ReactProp(name = "borderRadius", defaultFloat = 0f)
public void setBorderRadius(ReactImageView view, float borderRadius) {
view.setBorderRadius(borderRadius);
}

@ReactProp(name = ViewProps.RESIZE_MODE)
public void setResizeMode(ReactImageView view, @Nullable String resizeMode) {
view.setScaleType(ImageResizeMode.toScaleType(resizeMode));
Expand Down Expand Up @@ -105,7 +105,7 @@ The very final step is to create the JavaScript module that defines the interfac
```js
// ImageView.js

var { requireNativeComponent, PropTypes } = require('react-native');
import { requireNativeComponent, PropTypes } from 'react-native';

var iface = {
name: 'ImageView',
Expand Down
8 changes: 4 additions & 4 deletions docs/NativeComponentsIOS.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ Then you just need a little bit of JavaScript to make this a usable React compon
```javascript
// MapView.js
var { requireNativeComponent } = require('react-native');
import { requireNativeComponent } from 'react-native';
// requireNativeComponent automatically resolves this to "RCTMapManager"
module.exports = requireNativeComponent('RCTMap', null);
Expand Down Expand Up @@ -79,8 +79,7 @@ This isn't very well documented though - in order to know what properties are av

```javascript
// MapView.js
var React = require('react-native');
var { requireNativeComponent } = React;
import React, { requireNativeComponent } from 'react-native';

class MapView extends React.Component {
render() {
Expand Down Expand Up @@ -302,7 +301,8 @@ Since all our native react views are subclasses of `UIView`, most style attribut
```javascript
// DatePickerIOS.ios.js

var RCTDatePickerIOSConsts = require('react-native').UIManager.RCTDatePicker.Constants;
import { UIManager } from 'react-native';
var RCTDatePickerIOSConsts = UIManager.RCTDatePicker.Constants;
...
render: function() {
return (
Expand Down
6 changes: 3 additions & 3 deletions docs/NativeModulesAndroid.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,14 +130,14 @@ To make it simpler to access your new functionality from JavaScript, it is commo
* 2. int duration: The duration of the toast. May be ToastAndroid.SHORT or
* ToastAndroid.LONG
*/
var { NativeModules } = require('react-native');
import { NativeModules } from 'react-native';
module.exports = NativeModules.ToastAndroid;
```

Now, from your other JavaScript file you can call the method like this:

```js
var ToastAndroid = require('./ToastAndroid');
import ToastAndroid from './ToastAndroid';

ToastAndroid.show('Awesome', ToastAndroid.SHORT);
```
Expand Down Expand Up @@ -275,7 +275,7 @@ sendEvent(reactContext, "keyboardWillShow", params);
JavaScript modules can then register to receive events by `addListenerOn` using the `Subscribable` mixin
```js
var { DeviceEventEmitter } = require('react-native');
import { DeviceEventEmitter } from 'react-native';
...
var ScrollResponderMixin = {
Expand Down
5 changes: 3 additions & 2 deletions docs/NativeModulesIOS.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,8 @@ RCT_EXPORT_METHOD(addEvent:(NSString *)name location:(NSString *)location)
Now, from your JavaScript file you can call the method like this:
```javascript
var CalendarManager = require('react-native').NativeModules.CalendarManager;
import { NativeModules } from 'react-native';
var CalendarManager = NativeModules.CalendarManager;
CalendarManager.addEvent('Birthday Party', '4 Privet Drive, Surrey');
```

Expand Down Expand Up @@ -334,7 +335,7 @@ The native module can signal events to JavaScript without being invoked directly
JavaScript code can subscribe to these events:

```javascript
var { NativeAppEventEmitter } = require('react-native');
import { NativeAppEventEmitter } from 'react-native';

var subscription = NativeAppEventEmitter.addListener(
'EventReminder',
Expand Down
12 changes: 6 additions & 6 deletions docs/PlatformSpecificInformation.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ permalink: docs/platform-specific-code.html
next: native-modules-ios
---

When building a cross-platform app, the need to write different code for different platforms may arise. This can always be achieved by organizing the various components in different folders:
When building a cross-platform app, the need to write different code for different platforms may arise. This can always be achieved by organizing the various components in different folders:

```sh
/common/components/
/android/components/
/common/components/
/android/components/
/ios/components/
```

Expand All @@ -25,7 +25,7 @@ BigButtonAndroid.js
But React Native provides two alternatives to easily organize your code separating it by platform:

## Platform specific extensions
React Native will detect when a file has a `.ios.` or `.android.` extension and load the right file for each platform when requiring them from other components.
React Native will detect when a file has a `.ios.` or `.android.` extension and load the right file for each platform when requiring them from other components.

For example, you can have these files in your project:

Expand All @@ -37,7 +37,7 @@ BigButton.android.js
With this setup, you can just require the files from a different component without paying attention to the platform in which the app will run.

```javascript
var BigButton = require('./components/BigButton');
import BigButton from './components/BigButton';
```

React Native will import the correct component for the running platform.
Expand All @@ -46,7 +46,7 @@ React Native will import the correct component for the running platform.
A module is provided by React Native to detect what is the platform in which the app is running. This piece of functionality can be useful when only small parts of a component are platform specific.

```javascript
var {Platform} = React;
var { Platform } = React;

var styles = StyleSheet.create({
height: (Platform.OS === 'ios') ? 200 : 100,
Expand Down
2 changes: 1 addition & 1 deletion docs/Timers.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ We found out that the primary cause of fatals in apps created with React Native
This library does not ship with React Native - in order to use it on your project, you will need to install it with `npm i react-timer-mixin --save` from your project directory.

```javascript
var TimerMixin = require('react-timer-mixin');
import TimerMixin from 'react-timer-mixin';

var Component = React.createClass({
mixins: [TimerMixin],
Expand Down
6 changes: 3 additions & 3 deletions docs/Troubleshooting.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,12 +96,12 @@ You need to run `adb reverse tcp:8081 tcp:8081` to forward requests from the dev

## Module that uses `WebSocket` (such as Firebase) throws an exception

React Native implements a polyfill for WebSockets. These polyfills are initialized as part of the react-native module that you include in your application through `require('react-native')`. If you load another module that requires WebSockets, be sure to load/require it after react-native.
React Native implements a polyfill for WebSockets. These polyfills are initialized as part of the react-native module that you include in your application through `import React from 'react-native'`. If you load another module that requires WebSockets, be sure to load/require it after react-native.

So:
```
var React = require('react-native');
var Firebase = require('firebase');
import React from 'react-native';
import Firebase from 'firebase';
```

Requiring firebase *before* react-native will result in a 'No transports available' redbox.
Expand Down

3 comments on commit 3ae99d0

@bestander
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@yipengmu
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍👍👍

@mozillo
Copy link

@mozillo mozillo commented on 3ae99d0 Mar 2, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Please sign in to comment.