当前位置: 首页 > 面试题库 >

如何从React访问样式?

万俟渝
2023-03-14
问题内容

我试图在React中访问div的宽度和高度样式,但是我遇到了一个问题。这是我到目前为止所得到的:

componentDidMount()  {
  console.log(this.refs.container.style);     
}


render()  {
   return (
      <div ref={"container"} className={"container"}></div>  //set reff
   );
}

这可以工作,但是我得到的输出是CSSStyleDeclaration对象,并且在all属性中,我可以为该对象提供所有CSS选择器,但是没有设置它们。它们都设置为空字符串。

这是CSSStyleDecleration的输出是:http :
//pastebin.com/wXRPxz5p

非常感谢您对查看实际样式(事件继承的样式)的任何帮助!

谢谢!


问题答案:

对于React v <= 15

console.log( ReactDOM.findDOMNode(this.refs.container).style); //React v > 0.14

console.log( React.findDOMNode(this.refs.container).style);//React v <= 0.13.3

编辑:

获取特定的样式值

console.log(window.getComputedStyle(ReactDOM.findDOMNode(this.refs.container)).getPropertyValue("border-radius"));// border-radius can be replaced with any other style attributes;

对于React v> = 16

使用回调样式或使用createRef()分配引用。

assignRef = element => {
  this.container = element;
}
getStyle = () => {

  const styles = this.container.style;
  console.log(styles);
  // for getting computed styles
  const computed = window.getComputedStyle(this.container).getPropertyValue("border-radius"));// border-radius can be replaced with any other style attributes;
  console.log(computed);
}


 类似资料:
  • 问题内容: 我在React中有一个表单,可以动态添加新的输入元素。这似乎 工作正常,但我似乎无法访问此 屏幕截图中所示的输入值… console.log数组 我尝试了以下 console.log(this.state.telephone.name) 和… console.log(this.state.telephone.tidx.name) 其中tidx是唯一键。 这是构造函数… and this

  • 问题内容: 我想使用React.js制作一个应用程序。我希望它可以轻松地从外部进行自定义(例如,通过编写用户脚本)。我尝试使用的想法是在根元素状态(如或)中创建一些特殊的属性,以便插件开发人员可以在此处添加一些内容。我的问题是:这是否是一个好方法,是否有Right Way™实现与我的目标相似的目标,最后,插件开发人员将如何使用这些道具? 问题答案: 一种选择是可观察的。基本上,它是一个对象,您可以

  • 我有一个方法showInfo,它由两个组件Child1和child2访问。 最初,我在Child1组件中有showInfo方法,如下所示 } 上面的代码起作用。但现在我有另一个组件child2,它需要使用相同的方法showinfo。 组件child2如下所示 } 我没有在Child2组件中编写相同的方法showInfo,而是将它放在不同的文件中,在这个文件中,child1和Child2组件可以共享

  • 我使用Expo,我想添加访问我的应用程序的用户有一个谷歌帐户。然后我需要得到有关用户登录到我的应用程序谷歌日历的信息。 我使用:(https://docs.expo.io/versions/latest/sdk/google)实现登录功能。我的范围如下所示: 当有人试图登录我的应用程序时,它会询问查看日历列表的权限。作为回应,我得到: 我收到了关于用户的数据,但我没有关于它的日历的任何数据。我尝试

  • 问题内容: 我需要在本地使用数据库。我已经使用Visual Studio 2012在(LocalDB)\ v11.0 Server中创建了数据库。从例如控制台应用程序进行连接时,一切正常。但是我的应用程序是Windows Service。尝试通过以下方式连接到我的数据库输出: 有什么解决办法吗?也许我应该考虑为此设置其他数据库服务器?如果是,如何设置它使其仅在本地可见? 问题答案: 所以我自己找到

  • 我已经在AWS VPC上启动了AWS ElastiCache节点。我可以从VPC资源(如EC2)中访问此Redisendpoint。 我有一个VPN连接(虚拟专用网络)从本地连接到此专有网络。我可以访问所有其他资源,如EC2,但我无法从本地网络访问Redisendpoint。 注意:由于我可以从On-Premise访问EC2资源,因此适当设置了路由表。 您能告诉我(如果我需要修改任何内容)如何从本