大佬教程收集整理的这篇文章主要介绍了如果有多个属性,我如何将基于类的状态更改为基于函数的状态?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试将基于类的组件更改为基于函数的组件。
如果它只有一个属性,则很容易,例如 state = { value:1} const[value,SETVALue] = React.useState(1);
但如果它不止一个,我会陷入困境,因为我是这种编程语言的新手。
state = {
userToken: {
email: '',password: ''
},baseEmptyData: {
receiptID: -1,processID: 0,receiptname: "",image: "",hasImage: 0,inputs: {
companyname: '',fisno: '',fisTarihi: '',vd: '',vdNo: ''
},userData: {
name: '',surname: '',email: '',accountType: '',remaining: 0,quota: 0,corporate: '',APIKEY: '',APIURL: '',},
怎么改?我应该写一些类似的东西吗
const [userData,setUserData] = useState([name:"",surname:""])
对吗?
如何将 baseEmptyData-inputs 部分更改为函数库?
通常,出于以下几个原因,您需要将状态分解为可管理的相关数据块:
this.setState
不同,功能组件状态不是浅合并,您需要自己管理。对于基于类的组件,您只能使用一个状态对象 this.state
,但在功能组件中没有这样的限制,您可以根据需要使用尽可能多的 useState
钩子来表示您的组件状态。
对于您提供的基于类的状态,我看到 userToken
和 baseEmptyData
之间有很好的划分。我将为每个创建一个状态,因为 baseEmptyData
看起来像静态初始“状态”,因此可以在组件外部声明并使用它。
const initialBaseEmptyData = {
receiptID: -1,processID: 0,receiptName: "",image: "",hasImage: 0,inputs: {
companyName: '',fisno: '',fisTarihi: '',vd: '',vdNo: ''
},userData: {
name: '',surname: '',email: '',accountType: '',remaining: 0,quota: 0,corporate: '',apiKEY: '',apiURL: '',},};
在组件中
const [userToken,setUserToken] = React.useState({
email: '',password: ''
});
const [baseEmptyData,setBaseEmptyData] = React.useState(initialBaseEmptyData);
由于 baseEmptyData
更大、更复杂并且具有嵌套属性,您@R_322_9381@改用 useReducer 钩子更容易。
useReducer
通常比 useState
更可取
涉及多个子值或下一个状态时的状态逻辑
取决于前一个。 useReducer
还可以让您优化
触发深度更新的组件的性能,因为您可以
向下传递调度而不是回调。
以上是大佬教程为你收集整理的如果有多个属性,我如何将基于类的状态更改为基于函数的状态?全部内容,希望文章能够帮你解决如果有多个属性,我如何将基于类的状态更改为基于函数的状态?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。