为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript Array Map 返回空数组

JavaScript Array Map 返回空数组

MM们 2021-10-21 13:48:45
我想有一个上传机制,可以上传图片并将它们转换为 base64 字符串,然后将它们保存到一个状态。之后,我想在一个组件中映射。但事实证明,Array.map()在这种情况下会返回一个空数组。array.map 有限制吗?class TestFileInput extends React.Component {  constructor(props){        super(props);    this.fileToBase64 = this.fileToBase64.bind(this);    this.state = {        examplePictures: undefined    }  }  fileToBase64(files){        let array = [];        for(let i = 0; i < files.length; i++){            let reader = new FileReader();            let file = files[i];            reader.onload = function(event) {                // Push to array                array.push(event.target.result)            };            reader.readAsDataURL(file);        }        //return array        return array; }  render() {    console.log(this.state.examplePictures);    return (        <div>          <input type="file" multiple onChange={(e) => {            this.setState({            examplePictures: this.fileToBase64(e.target.files)          })        }}/>        {this.state.examplePictures !== undefined ? (            <div>              {this.state.examplePictures.map(pic => (                <img src={pic} alt=""/>                ))}            </div>        ):""}      </div>    );  }}所以基本上,当你上传图片时。在fileToBase64获取调用,返回使用Base64字符串数组(工作)。他们被保存到状态(这也有效)。只有映射返回一个空数组。这是一个小提琴https://jsfiddle.net/op69hbxm/3/
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 726 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信