已关闭此问题为not reproducible or was caused by typos。它目前不接受回答。
此问题是由打印错误或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这一个是解决的方式不太可能帮助未来的读者。
3天前关闭。
Improve this question
你好,我正在做任务应用程序,当我点击创建按钮,它显示我[对象对象],而不是组件
下面是App组件文件:
import React from 'react'
import Task from './Task.js'
function App() {
function createTask(){
const tasksList = document.querySelector(".tasksList")
tasksList.append(<Task />)
}
return (
<div className='app'>
<div id='mainPanel'>
<button onClick={createTask}>create</button>
</div>
<div className='tasksList'>
</div>
</div>
)
}
export default App
下面是任务组件文件:
import React from 'react'
function Task() {
return (
<div>
<input/>
<button>delete</button>
</div>
)
}
export default Task
2条答案
按热度按时间omtl5h9j1#
ReactJS使用了virtual DOM,这意味着你不能像使用
HTMLElement
一样使用ReactNode
(从JSX表达式返回的内容)。正确的做法如下:基本上创建一些状态,而不是试图直接操作DOM,更新状态。
顺便说一下,你上面的代码可以在没有虚拟DOM的框架中工作,例如here is it working in SolidJS,但即使这样我也不推荐这种方法,因为它很难跟踪你的状态,而且大多数情况下,使用声明式框架是失败的。
wn9m85ua2#
问题是,你试图插入一个JSX组件到DOM中,但这是不可能的。
如果你的目标是有一个任务列表,并有一个按钮添加到列表中的任务,你可以使用下面的代码。
此代码包含一个react状态,它是一个任务数组。默认情况下,此数组为空。
当您单击按钮添加任务时,我们使用setState函数在数组({name:“新任务”})。
然后在代码中,为了呈现数组中的所有任务,我们只需Map任务。