reactjs - 如何在函数中使用 React 组件?

标签 reactjs

我有这段代码,在我的代码中我正在使用一个组件,这应该是可能的吗?

let newBox = document.createElement("span")
for (let a = 0; a < suggestions.length; a++) {
 let newDiv= <Option value={suggestions[a]}/>
 newBox.appendChild(newDiv)
}

item.appendChild(newBox)

这个组件只有这个:

import React, { useState } from 'react';

const Option = (value) => {
    return (<div className="divBorder"> {value} </div>)
}

export default Option

顺便说一句:我在这部分有这个错误:newBox.appendChild(newDiv)

这是错误:

TypeError: Node.appendChild: Argument 1 does not implement interface Node.

最佳答案

您需要了解 React 的 JSX 和“虚拟 DOM”如何工作。

诸如<Option value={suggestions[a]} />之类的东西用 JSX 编写,最终转译为 JS,等价结果为

React.createElement(Option, { value: suggestions[a] }, null)

现在你应该看到不可能将这样的东西直接附加到 DOM 中,它甚至不是一个有效的 DOM 元素!

它是一个 React 元素,又名虚拟 DOM 元素,它旨在由理解如何理解它的渲染器引擎使用。 react-dom lib是Web平台的引擎,可以有其他引擎。

关于reactjs - 如何在函数中使用 React 组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67134251/

相关文章:

reactjs - Axios GET 请求表单编码数据

string - 在 React 中将组件的状态添加到字符串中

javascript - 如何在 React 高阶组件 (HOC) 中使用 refs

javascript - 搜索的最后结果被底部的选项卡导航器隐藏

javascript - 将 Pros 从 State 传递给 Child

javascript - ReactJS - 无法读取状态对象上的 this.props.value

javascript - VSCode 不会对模板字符串内的内容进行样式设置

reactjs - 未处理的拒绝 (TypeError) : this. props.callbackFunction 不是函数

reactjs - 更改 Material UI v5 中 float 标签的字体大小

html - HTML:将单独的音频附加到视频不起作用