我正在将一个布尔道具传递给我的组件,稍后将用于渲染某些东西。我将它的值设置为一个状态,以便我可以更改它并重新渲染组件。
这是我的组件的样子:
class MyComponent extends React.Component {
constructor (props) {
super(props)
console.warn('IS FAVOURITED IN THE CONSTRUCTOR', props.isFavourited)
this.state = {
isFavourited: props.isFavourited
}
}
render () {
const { isFavourited } = this.state
console.warn('IS FAVOURITED IN THE RENDER', props.isFavourited)
return (
<div>
{
isFavourited ? <span> IS FAVOURITED</span> : <span>IS NOT FAVOURITED</span>
}
</div>
)
}
}
这句话很好,除非我刷新页面。基本上,当我刷新页面时,在构造函数中,props.isFavourited
即使我传递的是true
.
在刷新期间安装组件时是否存在断开连接?
有谁知道如何解决这个问题?
编辑:将添加更多关于组件外部发生的事情的上下文:
isFavourited
prop 来自一个数组,我在其中检查一个元素是否属于它。这就是我的组件调用的样子:
const isFavourite = favouriteList.indexOf(myElement) !== -1
if (isFavourite) {
console.warn('IS FAVOURITE?', isFavourite)
}
return <MyComponent isFavourite={isFavourite}/>
现在这是另一个有趣的部分,当我刷新页面时,我得到以下日志:
是最喜欢的吗?真的
在构造函数中是最喜欢的 false
在渲染中是最喜欢的 false
几乎感觉它在刷新期间没有正确传递