如何在 React 的组件调用中使用变量作为 prop 的值?
How to use a variable as value for a prop in a component call for React?
我正在尝试使用变量作为道具名称的值,但似乎无法使其工作。甚至可能还是我需要额外的步骤?
我试过只使用普通电话:
class Greeting extends React.Component {
render() {
const name = "Lister";
return <h1>Hi there, {this.props.firstName}!</h1>;
}
}
ReactDOM.render(
<Greeting firstName=name />,
document.getElementById('app')
);
还尝试了反引号
<Greeting firstName=`${name}' />
甚至双卷发
<Greeting firstName={{name}} />
我认为这会非常简单,并希望变量能够简单地传递,然而,事实并非如此。有什么建议吗?
const name = "Lister";
不应在 Greeting
组件中声明。
尝试将 Greeting
组件放在一个单独的文件中。使用 import {Greeting} from './path/to/greeting'
将其导入到您调用 ReactDOM.render()
的文件中
然后添加
<Greeting firstName='Lister' />,
document.getElementById('app'));
或者如果您想将 'Lister'
放在变量中:
let name = 'Lister'
在你调用 ReactDOM.render()
的文件中某处
<Greeting firstName={name} />,
document.getElementById('app'));
希望对您有所帮助
这不是正确的方法。您已经在 render
函数中声明了常量。
但是函数的范围在你使用它之前就结束了。
尝试
ReactDOM.render(
<Greeting firstName="Lister" />,
document.getElementById('app')
);
或者在全局范围内声明常量(在定义您的 class 之前)
然后可以用花括号得到结果:
ReactDOM.render(
<Greeting firstName={name} />,
document.getElementById('app')
);
希望对您有所帮助!
我正在尝试使用变量作为道具名称的值,但似乎无法使其工作。甚至可能还是我需要额外的步骤?
我试过只使用普通电话:
class Greeting extends React.Component {
render() {
const name = "Lister";
return <h1>Hi there, {this.props.firstName}!</h1>;
}
}
ReactDOM.render(
<Greeting firstName=name />,
document.getElementById('app')
);
还尝试了反引号
<Greeting firstName=`${name}' />
甚至双卷发
<Greeting firstName={{name}} />
我认为这会非常简单,并希望变量能够简单地传递,然而,事实并非如此。有什么建议吗?
const name = "Lister";
不应在 Greeting
组件中声明。
尝试将 Greeting
组件放在一个单独的文件中。使用 import {Greeting} from './path/to/greeting'
ReactDOM.render()
的文件中
然后添加
<Greeting firstName='Lister' />,
document.getElementById('app'));
或者如果您想将 'Lister'
放在变量中:
let name = 'Lister'
在你调用 ReactDOM.render()
<Greeting firstName={name} />,
document.getElementById('app'));
希望对您有所帮助
这不是正确的方法。您已经在 render
函数中声明了常量。
但是函数的范围在你使用它之前就结束了。
尝试
ReactDOM.render(
<Greeting firstName="Lister" />,
document.getElementById('app')
);
或者在全局范围内声明常量(在定义您的 class 之前)
然后可以用花括号得到结果:
ReactDOM.render(
<Greeting firstName={name} />,
document.getElementById('app')
);
希望对您有所帮助!