Этот ES6 дает некоторые проблемы в React native. Я хочу написать код в чистом ES6, но запись части дает ошибки.React-native (ES5) to (ES6)
ES5 код
renderScene: function (route, navigator) {
var Component = route.component;
return (
<Component openModal={() => this.setState({modal: true})}/>
)
},
Где ES6 является:
renderScene(route, navigator) {
var Component = route.component;
return (
<Component openModal={() => this.setState({modal: true}) }/>
)
}
Я получаю эту ошибку:
Я попытался добавить привязку (это), но он не работает.
Может ли кто-нибудь помочь? Thx заранее
EDIT: Добавлен полный код класса
class Navigation extends Component {
constructor(props) {
super(props)
this.state = {
modal: false,
}
}
renderScene(route, navigator) {
var Component = route.component;
return (
<Component openModal={() => this.setState({modal: true}) }/>
)
}
goToOtherRoute() {
//this.refs.navigator.push({newRoute})
}
render() {
return (
<View style={styles.container}>
<Navigator
ref="navigator"
initialRoute={RouteStack.app}
renderScene={this.renderScene}
/>
{this.state.modal ? <Basket goToOtherRoute={this.goToOtherRoute} closeModal={() => this.setState({modal: false}) }/> : null }
</View>
);
}
}
Можете ли вы опубликовать весь класс? – nils
Вы изменили с 'React.createClass' на' class extends Component'? – azium
У меня есть [аналогичная проблема] (http://stackoverflow.com/questions/36777607/how-to-access-this-inside-a-renderrow-of-a-listview). Кажется, что 'this' не является экземпляром Navigation. Вы можете использовать console.log (this) внутри 'render' и сравнить его с console.log (this) внутри' renderScene' – xabitrigo