Inside a component, I have an input field for an image like so:
function AFunction () {
const [imageTitle, setImageTitle] = useState("")
const [buffer, setBuffer] = useState(null)
// for file (does not work)
<input type='file' accept=".png, .jpg, .jpeg" onChange={(event) => {
event.preventDefault()
const file = event.target.files[0]
const reader = new window.FileReader()
reader.readAsArrayBuffer(file)
reader.onloadend = () => {
setBuffer(Buffer(reader.result))
console.log('buffer', buffer)
}
}} />
// for title (works)
<input id="imageTitle" type="text" value={imageTitle} onChange={e => setImageTitle(e.target.value)} />
}
This code gets the title correctly, but displays the buffer as null
Full behaviour:
- Upload image from file...
- Image gets uploaded
- console.log displays
null
- further debugging proves title is known after a change in input field
I tried altering the useState
parameter with ""
, also does not work.
question from:
https://stackoverflow.com/questions/65887894/reactjs-simple-image-upload-buffer-displays-null 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…