reactjs - 每当我在输入中输入任何内容时网页都会消失
问题描述
我是新手,我一直在尝试简单的程序来更好地理解 React。这是我写的代码。
const Previewer = (props) => {
let {text} = props
return (
<div>
<p>{text}</p>
</div>
)
}
const App = () => {
let [text, setText] = useState()
return (
<>
<label for="text-edit">Editor</label>
<textArea id="text-edit" value={text} placeholder="Type Here..." onChange={(event) =>
setText({
text: event.target.value
})}
></textArea>
{console.log(text)}
<Previewer text={text} />
</>
)
}
const root = document.querySelector('#root')
ReactDOM.render(<App />, root)
我遇到的问题是,每当我开始在 textarea 元素中输入任何内容时,整个网页都会消失。我假设这是因为组件生命周期问题,但我不确定。谁能解释我这个程序哪里出错了?
解决方案
问题是App组件,onChange你需要传递一个字符串值而不是一个对象,它<textarea>
不是<textArea>
const App = () => {
let [text, setText] = useState()
return (
<>
<label for="text-edit">Editor</label>
<textarea id="text-edit" value={text} placeholder="Type Here..." onChange={(event) =>
setText(event.target.value)}
></textarea>
{console.log(text)}
<Previewer text={text} />
</>
)
}
推荐阅读
- amazon-web-services - 如果资源具有不同的 IP 但相同的域,它们是否属于同一来源?
- c++ - 关于使用 C++ 协程的问题
- react-native - 每当我尝试调用我在另一个反应本机应用程序中创建的 ReactNativeLibrary 时,我都会得到“未定义不是对象”
- javascript - 我应该如何在 JS 类中声明属性?
- node.js - 要导入 Sass 文件,首先需要安装 node-sass
- javascript - 将十六进制转换为 BigInt 节点红色
- javascript - 使用 Jquery 在页面上定位第一次和第二次出现的 Div
- qt - 在 Qt 中的 Table 中显示文件夹中的数据条目(xml)
- c++ - 仅计算“核心”QImage 数据(不包括元数据)的 QCryptographicHash
- c# - 使用带有空 Generic.List 作为参数的 AddRange 时 Generic.List 引发的参数异常