【发布时间】:2016-04-21 17:11:39
【问题描述】:
这个 ES6 给 React native 带来了一些问题。我想用纯 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}) }/>
)
}
我收到此错误:
我尝试添加 bind(this) 但它不起作用。
有人可以帮忙吗?提前谢谢
编辑:添加完整的类代码
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>
);
}
}
【问题讨论】:
-
你能发布整个课程吗?
-
你是从
React.createClass改成class extends Component吗? -
我有a similar problem。
this似乎不是 Navigation 实例。您可以在render中使用console.log(this) 并将其与renderScene中的console.log(this) 进行比较
标签: syntax-error react-native ecmascript-6