Javascript 如何将textarea的内容设置为使用useEffect之前保存的内容

Javascript 如何将textarea的内容设置为使用useEffect之前保存的内容,javascript,html,reactjs,react-hook-form,react-forms,Javascript,Html,Reactjs,React Hook Form,React Forms,我正试着用React做一个记事本。 我想在文本区域键入文本并保存它。 当页面重新打开时,我希望保存的文本保留在文本区域中 我试图使用react钩子形式,但我被困在useEffect函数中。 我想通过以下方式设置useEffect函数中的textarea document.getElementById("memoTextarea").value = memo; 但这一行给了我一个错误 还有什么可以取代这句话的吗 下面是我的代码: import { IonPage, IonC

我正试着用React做一个记事本。 我想在文本区域键入文本并保存它。 当页面重新打开时,我希望保存的文本保留在文本区域中

我试图使用react钩子形式,但我被困在useEffect函数中。 我想通过以下方式设置useEffect函数中的textarea

document.getElementById("memoTextarea").value = memo; 
但这一行给了我一个错误

还有什么可以取代这句话的吗

下面是我的代码:

import { IonPage, IonContent, IonHeader, IonToolbar, IonTitle, IonItem, IonItemDivider, IonTextarea, IonButton, IonCard, IonLabel, IonSegment, IonSegmentButton} from '@ionic/react';
import React, { memo, useEffect, useState } from 'react';
import { useForm } from 'react-hook-form';
import './Main.scss';


const Main: React.FC = () => {
    const { handleSubmit, register } = useForm();
    const onSubmit = (memo: any) =>  console.log(memo);
    
    useEffect(() => {
        let x = document.getElementById("memoTextarea");
        x = memo;
    },[memo]);

    return (

        <IonPage className="MainPage">
            <IonHeader>
                <IonToolbar>
                    <IonTitle>Memo pad</IonTitle>
                </IonToolbar>
            </IonHeader>
            <IonContent fullscreen>
                <IonCard>
                    <form className="memo" onSubmit={handleSubmit(onSubmit)}>
                        <IonItemDivider><IonLabel>Memo</IonLabel></IonItemDivider>          
                        <IonItem>
                            <IonTextarea id="memoTextarea" name="memoTextarea" rows={28} ref={r => register(r)} />
                        </IonItem>
                        <IonButton type="submit" fill="solid">Save</IonButton>
                    </form>
                </IonCard>
            </IonContent>
        </IonPage>)
}

export default Main;
从“@ionic/react”导入{Ionipage、IoniContent、IoniHeader、IoniToolbar、IoniTitle、IoniItem、IoniItemDivider、IoniTextArea、IoniButton、IoniCard、IoniLabel、IoniSegment、IoniSegmentButton};
从“React”导入React,{memo,useffect,useState};
从“react hook form”导入{useForm};
导入“/Main.scss”;
常量Main:React.FC=()=>{
const{handleSubmit,register}=useForm();
const onSubmit=(memo:any)=>console.log(memo);
useffect(()=>{
设x=document.getElementById(“memoTextarea”);
x=备忘录;
}[备忘录];
返回(
记事本
备忘录
寄存器(r)}/>
拯救
)
}
导出默认主;

您正试图将memoTextArea的值设置为从
React
@szczocik导入的
memo
,那么我应该如何将memoTextArea的值设置为我保存的文本?是的,它应该是一些保存的字符串。另外,我认为您不应该手动修改DOM。通过查看react钩子表单,看起来它们提供了
defaultValues
属性和
setValues
,这两个属性更适合本例@szczocik,非常感谢。我想我会使用setValues,但你们知道如何保存字符串吗?如何保存字符串?你是说提交?您可以将其保存到本地存储,也可以将其发送到后端并保存到数据库中。应该有很多资源来帮助这一点