簡體   English   中英

如何在reactjs中更新狀態?

[英]How to update the state in reactjs?

最初我有一個CKeditor組件,從那里有一個狀態變量editorContent

 <CKEditor id="currentCKEditor" activeClass="editor" key={this.state.editorContent} content={this.state.editorContent} events={{ "change": this.onChange, "instanceReady": this.ckeditorInstanceReady }} />

呈現組件時,editorContent來自templatestoreChange。 EditorContent狀態具有以下數據

_templateStoreChange(type) {

    if (type == 'SingleTemplate') {
        let singletemplate = TemplateStore._getSingleTemplate() || {};
        console.log("single template response", singletemplate);
        this.setState({ editorContent: singletemplate.template.html });
    }
}

在這里調用templateStoreChange logSig之后,editorContent發生更改。 而不是editorContent狀態得到更新這是以前的狀態正在被刪除並更改整個editorContent。

  logSig = () => {
   const signaturedata = this.signaturePad.toDataURL();

    let elem= '<img alt src=' + signaturedata + ' />';
    this.setState({
        openSignatureDialog: false,
        editorContent:elem
    })
    console.log("signaturedata", signaturedata);

}`enter code here`

我需要更新狀態,而不是刪除整個狀態並將其更改為新狀態。

您僅將elem變量分配給editorContent並且丟失了之前創建的全部內容。

解決方案是將elem變量連接到現有狀態。

logSig = () => {
    const signaturedata = this.signaturePad.toDataURL();

    let elem = '<img alt src=' + signaturedata + ' />';
    this.setState({
        openSignatureDialog: false,
        editorContent: this.state.editorContent + elem
    })
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM