reactjs - 从反应功能组件中的道具更改设置状态?
问题描述
我有简单的反应功能组件看起来像下面的代码
import React, { useState } from "react";
import "./styles.css";
export default function App() {
return (
<div className="App">
<Test
children={
<React.Fragment>
<label>Name: </label>
<input type="text" onChange={(e) => setData(e)} />
</React.Fragment>
}
/>
</div>
);
}
export function Test({ children }) {
const [data, setData] = useState("");
return (
<>
<div>{children && children}</div>
<div>{data}</div>
</>
);
}
我的问题是当 onChange 事件触发时如何更新组件data
内部的状态?Test
这里是沙盒
希望任何人都可以帮助我..提前谢谢
解决方案
你不必那样送孩子。React 有一种特定的方式来处理孩子,这更容易做和维护。在你的情况下,你只需要提升你的状态并将state
andcallback
作为道具发送。
import React, { useState } from "react";
import "./styles.css";
export default function App() {
const [data, setData] = React.useState('')
return (
<div className="App">
<Test data={data}>
<> // shorthand for ReactFragment
<label>Name: </label>
<input type="text" onChange={(e) => setData(e.target.value)} value={data}/>
</>
</Test>
</div>
);
}
export function Test({ data, children }) {
return (
<>
<div>{children && children}</div>
<div>{data}</div>
</>
);
}
推荐阅读
- ios - 如何从 AVAudioEngine 获取声音的频率
- ssh - MPI 无法使用 JSch exec 通道从 SSH 执行机器文件或主机
- python - 如何从日期范围中获取新的数据框,每天在日期范围中显示,同时包括我的所有列
- angular - 如何将组件属性传递给子组件?
- python - 在非常大的文本数据集上检测二元组集合
- python - 使用 SeqIO 从 ab1 转换为 fastq 时质量错误
- nginx - Nginx 从多个位置读取文件
- javascript - WordPress:在 JavaScript 中获取块 ID
- c# - .Net Core 3.0 JsonSerializer 填充现有对象
- android - 如何切换我准备使用的协议类型?