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

She*_*man 8 reactjs

我的问题涉及样式反应组件内联

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

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

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

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

但是我没有看到与style={{..}}直接在JSX"标签"中输入样式的语法的关联,如下所示:

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

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

我在文档和其他参考资料中看到了这一点,但我没有看到任何解释,它只是显而易见地传递过来.

由于这不是JS表达式规则的明显扩展,因此我只使用了一组大括号,并且遇到了错误.

Bre*_*ody 12

你正在归还一个物体.因此外{}括号用于返回变量,内{}括号用于创建对象.

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

style={
  {
    backgroundImage: `url(${avatarURL})`,
    color: #ffffff,
    fontSize: 16px
  }
}
Run Code Online (Sandbox Code Playgroud)