错误':' expected
出现在渲染方法中,并指向&&
。 this.state.obj
的类型为MyType
。
type MyType = {
name: string,
};
constructor(props) {
super(props);
this.state = {
obj: null
};
}
componentDidMount() {
this.setState({obj: {name: 'Vasya'}});
}
render() {
return {this.state.obj && <MyComponent />};
}
答案 0 :(得分:1)
您执行的return语句很差-请使用括号return ()
而不是花括号。使用return {}
,您正在返回一个对象。
另外,请注意,最好在渲染之前从状态中解构数据。
render() {
const {obj} = this.state;
return (obj && <MyComponent />);
}
答案 1 :(得分:0)
return
返回一个对象,而不是jsx。试试这个
type MyType = {
name: string,
};
constructor(props) {
super(props);
this.state = {
obj: null
};
}
componentDidMount() {
this.setState({obj: {name: 'Vasya'}});
}
render() {
return (
{this.state.obj && <MyComponent />}
);
}
或者这个:
type MyType = {
name: string,
};
constructor(props) {
super(props);
this.state = {
obj: null
};
}
componentDidMount() {
this.setState({obj: {name: 'Vasya'}});
}
render() {
if (this.state.obj)
return <MyComponent />;
else
return null;
}