为了账号安全,请及时绑定邮箱和手机立即绑定

将状态向下传递到子组件的 prop 中,并通过“(this.props.(propHere))”

将状态向下传递到子组件的 prop 中,并通过“(this.props.(propHere))”

呼啦一阵风 2024-01-18 20:48:32
我有一个父组件,其状态带有主题字符串。(目前仅用于测试目的,因此请不要对它的实用性考虑太多:)!)基本上,这是迄今为止的布局。父组件携带主题的状态。父组件使用代码“theme={this.state.theme}”将当前状态作为“theme”属性传递给子组件。尝试将子元素样式设置为内联style={{ background: this.props.theme === "light" ? "#fff" : "#000" }}得到错误:TypeError: Cannot read property 'props' of undefined。我知道这是因为“这个”是如何绑定的。然而,最好的方法是什么?我希望子元素与父组件的状态匹配,但我需要正确绑定“this”。
查看完整描述

2 回答

?
弑天下

TA贡献1818条经验 获得超7个赞

看来您正在为未分配的子元素使用功能组件this,请尝试更改为


                     //remove the `this`

style={{ background: props.theme === "light" ? "#fff" : "#000" }}


查看完整回答
反对 回复 2024-01-18
?
料青山看我应如是

TA贡献1772条经验 获得超7个赞

我知道这个问题已经得到解答,但这里有一个提示。当你有一个函数组件时,你可以像这样访问 prop:


someRandomFunc = ({props}) => {


return(

<Text

style={{ background: props.theme === "light" ? "#fff" : "#000" }}>HELLO WORLD</Text>

}

);


如果它是一个类组件。您可以直接使用this.props:


class Something extends React.Component{


state = {}


    render(){

return(


<Text style={{ background: this.props.theme === "light" ? "#fff" : "#000" }}></Text>


)

    }

}


希望这对将来有帮助!


查看完整回答
反对 回复 2024-01-18
  • 2 回答
  • 0 关注
  • 47 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信