const HiContainer => (props) {
render{
return(
<h1>Hi {this.props.greet}</h1>
)
}
}
ReactDOM.render(
<HiContainer greet="hi"/>
document.getElementById('root')
);
这段代码有什么问题?它很难调试我无法在控制台中看到哪些行有问题。
我何时需要使用constructor
?
答案 0 :(得分:2)
你有一些语法错误,应该是
const HiContainer = (props) => {
return(
<h1>Hi {props.greet}</h1>
)
}
可以简化为:
const HiContainer = props => <h1>Hi {props.greet}</h1>
您可能需要学习基础知识,这是箭头功能: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions
答案 1 :(得分:1)
好像你正在使用功能组件,它会自动处理render
方法。
代码应为:
const HiContainer = (props) => (
<h1>Hi {props.greet}</h1>
)
如果要向组件添加生命周期方法,则需要将其转换为类组件。
答案 2 :(得分:1)
问题是,您以错误的方式使用arrow
函数。
应该是这样const HiContainer = () => {}
。
试试这个它会起作用:
const HiContainer = (props) => {
return(
<h1>Welcome {props.greet}</h1>
)
}
ReactDOM.render(
<HiContainer greet="hi"/>,
document.getElementById('app')
);
使用constructor
时需要 stateful components
,并将信息存储在状态变量中,因为您使用stateless components
,不需要constructor
。
点击jsfiddle
查看工作示例:https://jsfiddle.net/ej2szg3a/
选中无状态功能组件:https://www.reactenlightenment.com/react-state/8.4.html