TypeScript React onChanged:尝试在共享点中执行 Web 部件时出错
Posted
技术标签:
【中文标题】TypeScript React onChanged:尝试在共享点中执行 Web 部件时出错【英文标题】:TypeScript React onChanged: getting an error when trying to execute the web part in sharepoint 【发布时间】:2020-05-27 21:32:45 【问题描述】:我不明白为什么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 >);
【问题讨论】:
错误信息是什么? 您确定是onChanged
而不是onChange
。您使用的是哪个 UI 库?确切的错误是什么?
我得到的错误是这个:Type ' multiline: true;行:数字; onChanged: (text: string) => void;值:任何; ' 不可分配给类型 'IntrinsicAttributes & ITextFieldProps & children?: ReactNode; '。类型'IntrinsicAttributes & ITextFieldProps & children?: ReactNode; 上不存在属性'onChanged' '.ts(2322)
我尝试将其更改为onChange
,但我遇到了更多错误,所以我认为应该是onChanged
【参考方案1】:
查看文档如何正确使用组件,它接受哪些道具...
我认为它应该是 onChange,你需要绑定它,因为你在 onChange 函数中使用了“this”关键字:
<TextField multiline rows=15 onChanged=this._onScriptEditorTextChanged.bind(this) value=this.state.script />
【讨论】:
以上是关于TypeScript React onChanged:尝试在共享点中执行 Web 部件时出错的主要内容,如果未能解决你的问题,请参考以下文章
Typescript React <Select> onChange 处理程序类型错误
TypeScript React onChanged:尝试在共享点中执行 Web 部件时出错
输入 onChange w/ React & TypeScript 错误:jsx no-lambda no-bind
React Typescript 故事书使用 onChange callBack 然后 setState 值 backTo Input 实现自定义 Input 组件