TypeScript React onChanged: получение ошибки при попытке выполнить веб-часть в sharepoint - PullRequest
0 голосов
/ 12 февраля 2020

Я не понимаю, почему атрибут onChanged не будет работать, нужен ли ему другой параметр?

private _onScriptEditorTextChanged(text: string) {
    this.setState({ script: text });
}

public render(): React.ReactElement<IScriptEditorProps> {
    const viewMode = <span dangerouslySetInnerHTML={{ __html: this.state.script }}></span>;

    return (
        <div >
            <div className={styles.scriptEditor}>
                <div className={styles.container}>
                    <div className={`ms-Grid-row pzl-bgColor-themeDark ms-fontColor-white ${styles.row}`}>
                        <div className="ms-Grid-col ms-lg10 ms-xl8 ms-xlPush2 ms-lgPush1">
                            <span className="ms-font-xl ms-fontColor-white">{this.props.title}</span>
                            <p className="ms-font-l ms-fontColor-white"></p>
                            <DefaultButton description='Opens the snippet dialog' onClick={this._showDialog}>Edit snippet</DefaultButton>
                        </div>
                    </div>
                </div>
            </div>
            <Dialog
                isOpen={this.state.showDialog}
                type={DialogType.normal}
                onDismiss={this._closeDialog}
                title='Embed'
                subText='Paste your script, markup or embed code below. Note that scripts will only run in view mode.'
                isBlocking={true}
                className={'ScriptPart'}
            >
                <TextField multiline rows={15} onChanged={this._onScriptEditorTextChanged} value={this.state.script} />
                <DialogFooter>
                    <PrimaryButton onClick={this._closeDialog}>Save</PrimaryButton>
                    <DefaultButton onClick={this._cancelDialog}>Cancel</DefaultButton>
                </DialogFooter>
                {viewMode}
            </Dialog>
        </div >);
}

}

1 Ответ

1 голос
/ 12 февраля 2020

посмотрите на документацию, как правильно использовать компонент, какие реквизиты он принимает ...

Я думаю, что это должно быть onChange, и вам нужно связать его, так как вы используете ключевое слово "this" внутри onChange функция:

<TextField multiline rows={15} onChanged={this._onScriptEditorTextChanged.bind(this)} value={this.state.script} />
...