mig*_*ton 0 typescript angular
我将 Angular 6 更新为 Angular 8。一切似乎都正常。除了一件事。
我用谷歌搜索了这个:属性“substring”在类型“ArrayBuffer”.ts(2339)上不存在。但没有得到满意的答复
所以我有这个:
const base64Img = fileReader.result.substring( fileReader.result.indexOf( ',' ) + 1 );
Run Code Online (Sandbox Code Playgroud)
结果属性如下所示:
readonly result: string | ArrayBuffer | null;
Run Code Online (Sandbox Code Playgroud)
但现在我得到这个错误:
Property 'substring' does not exist on type 'string | ArrayBuffer'.
Property 'substring' does not exist on type 'ArrayBuffer'.ts(2339)
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:如何解决这个问题?
谢谢
你不会再遇到编译器错误
整个函数如下所示:
loadImage( event: Event ) {
const fileInput = event.target as HTMLInputElement;
this.selectedFileName = fileInput.files[ 0 ].name;
if ( fileInput.files[ 0 ] ) {
const fileReader = new FileReader();
fileReader.addEventListener( 'load', () => {
const base64Img = fileReader.result.substring( fileReader.result.indexOf( ',' ) + 1 );
this.form.controls.picture.setValue( base64Img );
this.form.controls.uploadPicture.setValue( true );
} );
fileReader.readAsDataURL( fileInput.files[ 0 ] );
} else {
this.form.controls.picture.setValue( this.profile.picture );
this.form.controls.uploadPicture.setValue( false );
}
}
Run Code Online (Sandbox Code Playgroud)
您可以通过类型转换result为字符串类型来完成此操作。
const base64Img = (fileReader.result as string).substring((fileReader.result as string).indexOf( ',' ) + 1 );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3283 次 |
| 最近记录: |