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

React:为什么内联样式需要双花括号语法{{..}}

步弘和
2023-03-14
问题内容

我的问题涉及内联样式化React组件。

我了解在JSX中{variableName},需要使用大括号来引用任何JS变量或表达式。

因此,使用以下结构添加内联样式对我来说很有意义。所需的样式存储在JavaScript变量中,然后在JSX“标签”中以style={divStyle}

const divStyle = {
  backgroundImage: `url(${avatarURL})`,
};

function HelloWorldComponent() {
  return (
    <div className='avatar' style={divStyle}>
      Hello World!
    </div>;
  )
}

但是我看不到与将style={{..}}样式直接键入JSX“ tag”时的语法的联系,如下所示:

function HelloWorldComponent() {
  return (
    <div className='avatar' style={{backgroundImage: `url(${avatarURL})`}}>
      Hello World!
    </div>;
  )
}

有人可以解释style={{..}}构造背后的逻辑吗?

我在文档和其他参考资料中看到了这一点,但我没有看到任何解释,它似乎已经被忽略了。

因为这对我来说不是JS表达式规则的明显扩展,所以我只使用了一组大括号,并且遇到了错误。


问题答案:

您正在返回一个对象。因此,外部{}括号用于返回变量,内部{}括号用于创建对象

重新格式化它,可能更有意义:

style={
  {
    backgroundImage: `url(${avatarURL})`,
    color: #ffffff,
    fontSize: 16px
  }
}


 类似资料:
  • 问题内容: 从react.js教程中,我们可以看到双花括号的用法: 然后在第二个教程“ Thinking in react”中: 但是,React JSX文档没有描述或提及双花括号。此语法(双curies)有什么用?还有另一种方法可以在jsx中表达相同的内容,或者这仅仅是文档中的遗漏? 问题答案: 它只是在prop值中内联的对象文字。和…一样

  • 问题内容: 我知道这要求声明的作用。 但是有时候我在要求之后看到了两个括号。 问) 这是什么意思,它是如何工作的? 问题答案: 这是一种将所需模块的设置为功能的模式。要求该模块返回一个函数,并在require之后的括号中使用参数对函数求值。 在上面的示例中,您的文件如下所示: 这种模式通常用于将变量传递给模块,就像上面用变量所见。

  • 问题内容: 我可以看到有两种不同的导入方式 第二个有括号。那么两者之间有什么区别?什么时候应该加上括号?谢谢 问题答案: 那么,是否应该 在方括号中 导入组件之间的区别在于您的方式。 出口有两种类型 默认导出 命名为出口 组件可以有 一个默认导出,零个或多个命名 导出 如果组件是默认导出,则需要不带括号将其导入,例如 导入为 命名的出口可能像 要么 您可以将其导入为 要么 如果您的组件有一个默认导

  • 问题内容: 不知道这是否是Mozilla特定的JS语法,但是我经常发现以这种方式声明变量,例如,在附加SDK docs中: 并在各种Chrome Javascript中(使用代替的语句), 我发现这很令人困惑,但即使在MDN上,我也找不到有关这两种语法的任何文档。 问题答案: 它们都是JavaScript 1.7的功能。第一个是block-level variables: : 允许您声明变量,将其

  • 问题内容: 而且我仍然无法理解花括号的工作原理,特别是由于诸如简单程序这样的页面: http://wiki.python.org/moin/SimplePrograms 在各处使用大括号。我了解方括号和规则的圆括号,但是我不知道“定义字典”的含义或它们应该代表的含义。 问题答案: Python中使用“大括号”来定义字典。字典是一种将一个值映射到另一个值的数据结构,就像英语词典如何将单词映射到其定义

  • 本文向大家介绍为什么eval要添加括号呢?相关面试题,主要包含被问及为什么eval要添加括号呢?时的应答技巧和注意事项,需要的朋友参考一下 没太理解题意,方法的调用是要加括号的啊…… 如果题目问的是为什么会有 这种调用形式的话,那是因为js规定在间接调用(无调用者上下文)时,其编译的代码会默认执行在顶层作用域。 例: 所以永远只会返回全局对象(该表达式可以作为的polyfill,并且无法被污染)

  • 问题内容: 如何在Ansible 1.9.2中转义双花括号? 例如,如何在以下shell命令中转义大括号? 问题答案: 这是一个非常干净和Ansible的本机解决方法,不依赖于花括号。我们假设之前我们刚刚使用 Ansible docker模块 引用了一个容器: 现在,在Variable中具有Docker容器的IP 。我还在我的文章《与Docker融为一体的婚姻》中发布了此变通办法。 [更新2015

  • 问题内容: 我经常看到这样的代码(C,C ++,有时甚至是Java): 我看不到这些括号有任何好处。所以我的问题是,程序员是否假定函数是某种以返回值作为参数的函数,或者确实有这些括号有意义的情况吗? 我了解这里已经提出了类似的问题,但这仅与ANSI C有关。我想知道是否存在某些特定于C ++或Java的方面尚未得到解答。 问题答案: 关于C 括号放在有表达式的位置,并且希望返回值是表达式的值。 即