[fix] error in setNativeProps when no style

Close #325
Close #327
This commit is contained in:
Nicolas Gallagher
2017-01-10 17:28:39 -08:00
parent b14d2e5bd8
commit 65febbbc52
2 changed files with 6 additions and 4 deletions

View File

@@ -1,12 +1,12 @@
import applyLayout from '../../modules/applyLayout';
import applyNativeMethods from '../../modules/applyNativeMethods';
import NativeMethodsMixin from '../../modules/NativeMethodsMixin';
import createDOMElement from '../../modules/createDOMElement';
import findNodeHandle from '../../modules/findNodeHandle';
import StyleSheet from '../../apis/StyleSheet';
import Text from '../Text';
import TextareaAutosize from 'react-textarea-autosize';
import TextInputState from './TextInputState';
import UIManager from '../../apis/UIManager';
import View from '../View';
import { Component, PropTypes } from 'react';
@@ -116,7 +116,7 @@ class TextInput extends Component {
}
setNativeProps(props) {
UIManager.updateView(this._node, props, this);
NativeMethodsMixin.setNativeProps.call(this, props);
}
componentDidMount() {

View File

@@ -10,6 +10,7 @@ import findNodeHandle from '../findNodeHandle';
import StyleRegistry from '../../apis/StyleSheet/registry';
import UIManager from '../../apis/UIManager';
const emptyObject = {};
const REGEX_CLASSNAME_SPLIT = /\s+/;
const REGEX_STYLE_PROP = /rn-(.*):.*/;
@@ -83,7 +84,7 @@ const NativeMethodsMixin = {
const domClassList = [ ...node.classList ];
// Resolved state
const resolvedProps = StyleRegistry.resolve(nativeProps.style);
const resolvedProps = StyleRegistry.resolve(nativeProps.style) || emptyObject;
const resolvedClassList = classNameToList(resolvedProps.className);
// Merged state
@@ -94,7 +95,8 @@ const NativeMethodsMixin = {
// Only pass on a class name when the style is unchanged.
domClassList.forEach((c) => {
const prop = getStyleProp(c);
if (resolvedProps.className.indexOf(prop) === -1) {
const className = resolvedProps.className;
if (!className || className.indexOf(prop) === -1) {
classList.push(c);
}
});