在这个发布内容页面上可以添加一个选择文件用的表单元素,在发布内容的时候可以选择内容相关的一个图像文件。
打开 post-create,在这个组件的视图这里,先添加一组 div,里面包装的是一个 file 类型的 input 元素,选择文件用的表单元素。在元素上用 accept 属性可以设置允许的文件类型,比如添加一个 image/png 逗号分隔开,再添加一个 image/jpeg,还有 image/jpg ,这是几种类型的图像文件。
在这个文件元素上绑定 onChange 事件,设置一下事件处理器,有个 event 参数,解构一下事件处理器的 event 参数,先把 currentTarget 解构出来,然后再把它里面的 files 解构出来。
在处理器里面,先在控制台上输出 files ,这个属性的值是一个文件列表。
然后在浏览器上先测试一下,在内容发布页面,会显示一个文件字段 ,点击选择文件按钮,选择电脑上的一个图像文件。字段的值有变化,会在控制台上输出当前选择的文件列表,注意这个 FileList 是个对象,不是数组。它里面的 0 这个属性对应的值就是刚才我选择的文件。请求上传文件接口的时候会用到这个文件对象的值。
打开 app.css,在这个样式表里设计一下 input[type='file'] 这种元素的样式,用 margin-bottom 添加点下边距,大小是 16 像素。
回到 post-create 组件,在组件里准备一个数据,名字是 file,修改器是 setFile,类型是 File | null。
再改一下这个文件元素,在处理器里面,判断一下 files && files[0],如果是真的,就执行一下 setFile,把 files[0] 交给它。 else ,不然的话也执行一下 setFile,提供一个 null。