大佬教程收集整理的这篇文章主要介绍了从类到函数 React,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试将类组件更改为函数组件,但我不确定如何继续。我试图更改 useState 的状态,但是我无法将信息传递给状态本身,因此例如 URL 始终为空,因此它不起作用。任何人都可以提供有关如何修复它的提示吗?
class Recording extends Component {
state = {
audioDetails: {
url: null,blob: null,chunks: null,duration: {
h: 0,m: 0,s: 0,},};
handleAudioStop(data) {
this.setState({ audioDetails: data });
}
handleRest() {
const reset = {
url: null,};
this.setState({ audioDetails: reset });
}
render() {
return (
<div>
<Recorder
record={truE}
audioURL={this.state.audioDetailS.Url}
showUIAudio
handleAudioStop={(data) => this.handleAudioStop(data)}
handleRest={() => this.handleRest()}
/>
</div>
);
}
}
export default Recording;
export default function Recording(props) {
const [rec,setRec] = useState({
audioDetails: {
url: null,});
const handleAudioStop = (data) => {
setRec({ audioDetails: data });
console.log(rec);
};
const handleRest = () => {
const reset = {
url: null,};
setRec({ audioDetails: reset });
};
return (
<div>
<Recorder
record={truE}
audioURL={props.audioDetailS.Url}
showUIAudio
handleAudioStop={(data) => handleAudioStop(data)}
handleRest={() => handleRest()}
/>
</div>
);
}
来自Docs:
与类组件中的 setState 方法不同,useState 不会自动合并更新对象。您可以通过将函数更新程序形式与对象扩展语法相结合来复制此行为:
1
2
5
125
另一个选项是 useReducer,它更适合管理包含多个子值的状态对象。
,在 audioURL={props.audioDetailS.Url}@H_450_27@ 中,您不能在此处编写道具。因为 props 在子组件中使用,当 child 从 perent 获取数据时,child 使用 props 来获取数据。正如我在您的类组件中看到的,您使用了 this.state.audioDetailS.Url@H_450_27@。所以你需要做的是更正你的代码audioURL={rec.audioDetailS.Url}@H_450_27@。
以上是大佬教程为你收集整理的从类到函数 React全部内容,希望文章能够帮你解决从类到函数 React所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。