【发布时间】:2016-11-01 10:36:12
【问题描述】:
我今天遇到一个问题,考虑以下组件:
export default class Input extends React.Component {
someFunction() {
console.log(this.props.value)
}
render () {
const { type, value, required } = this.props
return (
<div className={cx('Input')}>
<input type={type} value={value} required={required} />
</div>
)
}
}
我已经成功解构this.props 并且可以在渲染中使用它们,但是如果我需要在它之外使用道具值,即在someFunction() 内部我不确定如果我搬出去会有什么后果@ 987654324@ 并包含在 export default class Input extends React.Component { 行之后。这仍然有效吗?
【问题讨论】:
-
如果你这样做,
this.props将是未定义的,因为它将在项目被渲染之前执行。你为什么要这么做? -
@JuanMendes 为了保持一致性,所以我也不需要在 render 之外编写 this.props
-
我不明白你在做什么,试图避免重复
const { type, value, required } = this.props?我想说的是坏主意,您可能需要在不同的方法中使用不同的值。如果你写了一个你想避免重复的真实例子,那么你有一个更好的问题。不清楚你为什么需要这个,看起来你过度设计了它 -
"...成功解耦
this.props..." - 你的意思是destructuring 吗? -
@naomik 更新了,我就是这个意思
标签: javascript object reactjs ecmascript-6 react-jsx