如何在 React 中的 React.createElement() 中定义 img 标签?
How to define a img tag inside a React.createElement() in React?
Learning React 遇到了一个场景,我想在 React.createElement() 中定义一个 'img' 标签。我试过下面的语法,但我确定这是一个错误的方法:
function Greeting() {
return (
<div>
<Person />
<Message />
</div>
);
}
const Person = () => {
<h2>Its an Image</h2>;
return React.createElement(
"img",
{},
"https://images-eu.ssl-images-amazon.com/images/I/81l3rZK4lnL._AC_UL200_SR200,200_.jpg"
);
};
我得到的错误如下:
Error: img is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.
▶ 15 stack frames were collapsed.
Module.<anonymous>
E:/REACT_APP/tutorial/src/index.js:43
40 | return <p>Follow the white rabbit </p>;
41 | };
42 |
> 43 | ReactDom.render(<Greeting />, document.getElementById("root"));
44 |
求推荐,
React.createElement
的参数如下(如docs中所见):
React.createElement(
type,
[props],
[...children]
)
最后一个参数是子元素,但是当您创建一个图像元素时,它应该没有子元素(即:它是一个像错误提到的空元素标签)。目前,您将图像源添加为子项,相当于:
<img>
https://images-eu.ssl-images-amazon.com/images/I/81l3rZK4lnL._AC_UL200_SR200,200_.jpg
</img>
相反,您需要在创建元素的 props 中指定 img 源,并为子元素传递 null
(undefined/null 可以在这里工作,因此不提供 3rd 参数也可以工作):
React.createElement(
"img",
{src: "https://images-eu.ssl-images-amazon.com/images/I/81l3rZK4lnL._AC_UL200_SR200,200_.jpg"},
null
);
作为旁注,呈现的内容是您从组件中 return 的内容。 <h2>Its an Image</h2>;
没有被 return 编辑或在任何地方使用,就像在常规函数中写入 1 + 2
,它的计算结果将是 3
,但不会做太多除此之外,除非你用它做点什么。
Learning React 遇到了一个场景,我想在 React.createElement() 中定义一个 'img' 标签。我试过下面的语法,但我确定这是一个错误的方法:
function Greeting() {
return (
<div>
<Person />
<Message />
</div>
);
}
const Person = () => {
<h2>Its an Image</h2>;
return React.createElement(
"img",
{},
"https://images-eu.ssl-images-amazon.com/images/I/81l3rZK4lnL._AC_UL200_SR200,200_.jpg"
);
};
我得到的错误如下:
Error: img is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.
▶ 15 stack frames were collapsed.
Module.<anonymous>
E:/REACT_APP/tutorial/src/index.js:43
40 | return <p>Follow the white rabbit </p>;
41 | };
42 |
> 43 | ReactDom.render(<Greeting />, document.getElementById("root"));
44 |
求推荐,
React.createElement
的参数如下(如docs中所见):
React.createElement( type, [props], [...children] )
最后一个参数是子元素,但是当您创建一个图像元素时,它应该没有子元素(即:它是一个像错误提到的空元素标签)。目前,您将图像源添加为子项,相当于:
<img>
https://images-eu.ssl-images-amazon.com/images/I/81l3rZK4lnL._AC_UL200_SR200,200_.jpg
</img>
相反,您需要在创建元素的 props 中指定 img 源,并为子元素传递 null
(undefined/null 可以在这里工作,因此不提供 3rd 参数也可以工作):
React.createElement(
"img",
{src: "https://images-eu.ssl-images-amazon.com/images/I/81l3rZK4lnL._AC_UL200_SR200,200_.jpg"},
null
);
作为旁注,呈现的内容是您从组件中 return 的内容。 <h2>Its an Image</h2>;
没有被 return 编辑或在任何地方使用,就像在常规函数中写入 1 + 2
,它的计算结果将是 3
,但不会做太多除此之外,除非你用它做点什么。