欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

React中使用react-file-viewer問題

 更新時(shí)間:2022年09月01日 17:18:34   作者:很好。  
這篇文章主要介紹了React中使用react-file-viewer問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

使用react-file-viewer

1.npm install react-file-viewer

2.在組建中引入import FileViewer from 'react-file-viewer';

3.使用:

 <FileViewer
    fileType={this.state.imgFlieType}//文件類型
    filePath={this.state.details.dragger}//文件地址
    onError={console.log('錯(cuò)誤信息')}
    errorComponent={console.log('發(fā)生錯(cuò)誤')}//[可選]:發(fā)生錯(cuò)誤時(shí)呈現(xiàn)的組件,而不是react-file- 
     viewer隨附的默認(rèn)錯(cuò)誤組件
    unsupportedComponent={console.log('不支持')} //[可選]:在不支持文件格式的情況下呈現(xiàn)的組件
/>

注意:

在使用插件時(shí)出現(xiàn)如下報(bào)錯(cuò)時(shí):

原因:react-file-viewer只支持文件網(wǎng)絡(luò)地址,本地地址可能不支持

解決辦法:需要把本地地址換成網(wǎng)絡(luò)地址進(jìn)行測試

react-file-viewer預(yù)覽本地文件

代碼

import React, {Component} from 'react';
import FileViewer from 'react-file-viewer';
export default class MyComponent extends Component {
    state = {
        fileLocalUrl: null,
        type: ''
    }
    changeFile(e) {
        let file = e.currentTarget.files[0]
        let fileName = file.name
        console.log(file)
        window.URL = window.URL || window.webkitURL;
        this.setState({
            fileLocalUrl: window.URL.createObjectURL(file),
            type: fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length)
        })
    }
    render() {
        const {fileLocalUrl, type} = this.state
        return (
            <div>
                {
                    fileLocalUrl && <FileViewer
                        fileType={type}
                        filePath={fileLocalUrl}
                        errorComponent={<div>錯(cuò)誤</div>}
                        onError={this.onError}/>
                }
                <input type="file" onChange={e => this.changeFile(e)}/>
            </div>
        );
    }
}

能遇到這個(gè)問題的大部分都是直接把file丟進(jìn)組件,導(dǎo)致報(bào)錯(cuò)

解決思路

window.URL.createObjectURL,創(chuàng)建文件對象的URL,將URL丟進(jìn)組件即可

在移除文件對象URL的時(shí)候記得調(diào)用URL.revokeObjectURL(url),清理內(nèi)存,否則會(huì)一直存在內(nèi)存中,詳見官網(wǎng)

https://developer.mozilla.org/zh-CN/docs/Web/API/URL/createObjectURL

對于大文件可能會(huì)導(dǎo)致內(nèi)存崩潰,切記不要預(yù)覽大文件,最好限制在30M以內(nèi)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論