Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
578 views
in Technique[技术] by (71.8m points)

javascript - React - difference between double curly brackets vs one curly bracket to enumerate properties

So I created the fiddle: https://jsfiddle.net/4ex7uh8g/

The problem is I don't understand the syntactic differences in the particular line of code of that fiddle. Take a look at 24 line in JavaScript tab. Here it uses such syntax: <div style={{...spanStyle}}> also I tried using such syntax as: <div style={spanStyle}> and it also works fine, and when I inspected the style properties are injected identically, so for me it looks like everything is the same, just the difference in syntax, but I'm not really sure, could I be missing something or misunderstanding when choosing one over another?

I also did read this thread: What do these three dots in React do?

It explains some things about three dots operator, I'm quite familiar with this spread operator, but still in my provided examples I don't see what difference that spread operators does, it doesn't separate attributes and values it works the same as {spanStyle}, so for me {{...spanStyle}} and {spanStyle} act identical?

Would be really grateful if you could point out the difference if there's any and when and why should I use one syntax over another.

question from:https://stackoverflow.com/questions/65851999/react-difference-between-double-curly-brackets-vs-one-curly-bracket-to-enumera

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

What you are looking for is the spread operator:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax

With this syntax you can create a new object, and add some prop overriding any original object prop.

Example:

const spanStyle = {width: '100%', height: '400px'};

<div style={{...spanStyle, height: 'auto'}}>

If you dont need override anything, just skip spread!


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...