具有动态内容的 Alert() javascript

Alert() with dynamic content javascript

alert({s[prop]})有什么问题,但这个placeholder={s[prop]}

没问题

它说我在 's' 之后缺少一个“,”,在“]”

之后缺少一个“:”

在 React 中,属性周围的 { } 本质上是 表达式定界符 - 它们表示括号之间的内容是 表达式。所以,如果你有 const str = 'foobar',那么:

placeholder={str}

评估为

placeholder='foobar'

但是,在 alert 中,您不是在编写 JSX,而是在编写纯 JS。在表达式上下文中,{ 表示对象文字的开始。但以下不是有效的对象字面量:

const obj = {
  s[prop]
}

因为对象需要键和值(通常)。也许你想做

alert(s[prop])

唯一一次对象文字 不需要 值是在您使用 shorthand 语法时,当您在当前范围内有一个变量时并希望定义一个对象,其 属性 与变量同名,值与变量相同,例如:

const str = 'foobar';
const obj = { str };

这会导致像 { str: 'foobar' } 这样的对象。

在任何其他情况下,除了值之外,您还需要定义 属性 名称,例如

{ somePropertyName: s[prop] }

alert(s['use your key'])

请这样使用。避免在 alert() 中使用 {},如果使用,您将看到 [object Object] 而不是实际的动态内容。

试试

alert(s[prop])

在 JSX 中打印任何 JS 变量必须用大括号括起来,但在 JS 中使用时不需要,alert 是 JavaScript 函数。