React Native September 2017 (v0.49.0) released

Breaking changes and deprecations

General

New projects have a single entry-point (index.js) from now on (6e99e31) - @fson

Summary:

Before

When creating a new project with react-native init, generated template has two entry-points: index.ios.js and index.android.js

Those two files were always identical

After

When creating a new project, generated template has a single, shared entry-point: index.js

Updating your code

When upgrading to this release with react-native-git-upgrade or react-native upgrade, be aware that these tools will automatically update your code to use index.js instead of index.ios.js and index.android.js, as previously. However, they will not create an index.js file for you. This is a side-effect of the react-native-git-upgrade that has to be reverted. After running that tool, you have two options:

rename index.ios.js to index.js and remove index.android.js (providing that they were as generated by react-native init)

revert changes done by react-native-git-upgrade in order to keep separate entry files. That is, as soon as you upgrade, revert changes made to AppDelegate.m, MainApplication.java and build.gradle.

Before

Aspect ratio would do its best to fit within it's parent constraints

Aspect ratio would prioritize alignItems: stretch over other sizing properties.

After

Aspect ratio is allowed to make a node grow past its parent constraints. This matches many other aspects of flexbox where parent constraints are not treated as hard constraints but rather as suggestions.

Aspect ratio only takes alignItems: stretch into account if no other size definition is defined. This matches the interaction of other properties with alignItems: stretch.

Updating your code

You probably don't need to do anything but in case something does break in your product it should be as easy as adding {width: '100%', height: '100%', flexShrink: 1} to the style declaring the aspectRatio.