首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在React中单击时,元素的样式不会更改

在React中单击时,元素的样式不会更改
EN

Stack Overflow用户
提问于 2021-04-19 16:19:33
回答 1查看 19关注 0票数 0

我已经处理这个问题好几天了。我只是不明白为什么元素的样式没有改变,我可以看到事件处理程序正在工作,点击改变了"this.style“,但它不适用于元素。

代码语言:javascript
运行
复制
import { getByPlaceholderText } from '@testing-library/dom';
import React from 'react';
import {Component} from 'react';
import Element from '../Element/Element'


            class Element extends Component{   // element who has the eventLister click
               render(){
            return <div onClick = {this.props.func} style = {this.props.style}> 
                    HELLO 
                   </div>
                   }
                 }


   class UserInput extends Component{     // here in UserInput I am  returning "Element" above 
                                          // and i am sending the event handler and style as  
                                          //  props
        style = {
        color:'red',
        fontSize:'40px'

         }
       func2=()=>{
          this.style = ({
          color:'black',
      
      });
       console.log('clicked')
       console.log(this.style);
   
 }


render(){ 
    return < Element func = {this.func2.bind(this)} style= {this.style}/>  
}

}

代码语言:javascript
运行
复制
      export  default UserInput;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-19 16:26:35

更改this.style不会触发重新呈现,因此Element组件看不到新样式。您应该将样式放在component state this.state = { style: ... }

并在func2内部更新状态this.setState({ style: ... })

然后是render函数:

代码语言:javascript
运行
复制
render(){ 
    return < Element func = {this.func2.bind(this)} style= {this.state.style}/>  
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67158363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档