Javascript 本机教程中的函数中断
我正在尝试React Native,React组件(如getInitialState和componentDidMount)的函数正在崩溃。例如,我尝试:Javascript 本机教程中的函数中断,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我正在尝试React Native,React组件(如getInitialState和componentDidMount)的函数正在崩溃。例如,我尝试: getInitialState: function() { return { movies: null, }; }, 坏了 当我将es6等效值放入时,即: constructor(props) { super(props); this.state = { movies: null,
getInitialState: function() {
return {
movies: null,
};
},
坏了
当我将es6等效值放入时,即:
constructor(props) {
super(props);
this.state = {
movies: null,
};
}
程序运行良好。
最好的方法是什么,这样我就可以使用教程中提到的React函数,而不是将它们转换为es6
谢谢 我无法查看您的代码来查看组件是如何创建的,但我想我知道这里发生了什么 如果将组件设置为类:
class MyComponent extends React.Component {
}
只能使用构造函数设置初始状态:
class MyComponent extends React.Component {
constructor(props) {
super(props);
this.state = {
movies: null,
};
}
render() {
return <View />
}
}
类MyComponent扩展了React.Component{
建造师(道具){
超级(道具);
此.state={
电影:空,
};
}
render(){
返回
}
}
如果使用React.createClass设置组件,则只能使用getInitialState设置初始状态:
var MyComponent = React.createClass({
getInitalState: function() {
return {
movies: null,
}
},
render: function() {
return <View />
}
})
var MyComponent=React.createClass({
getInitalState:函数(){
返回{
电影:空,
}
},
render:function(){
返回
}
})
所有其他生命周期方法的工作方式都应该相同。请注意,如果您使用的是类,则在类中的每个函数后加逗号将中断应用程序
例如,这将中断:
class MyComponent extends React.Component {
componentDidMount() {
console.log("mounted")
}, // <- No comma necessary
render() {
return <View />
}
}
class MyComponent extends React.Component {
componentDidMount() {
console.log("mounted")
}
render() {
return <View />
}
}
var MyComponent = React.createClass({
componentDidMount: function() {
console.log("mounted")
} // <- Needs a comma here.
render: function() {
return <View />
}
})
var MyComponent = React.createClass({
componentDidMount: function() {
console.log("mounted")
},
render: function() {
return <View />
}
})
类MyComponent扩展了React.Component{
componentDidMount(){
控制台日志(“已安装”)
},//这取决于您的组件是如何创建的。它是使用createClass还是class extends创建的?谢谢!抱歉,我没有包括如何设置组件。但这是重点。