У меня есть компонент аватара:
const Avatar = (props) => {
let newInput = React.createRef();
const upload = async () => {
let file = newInput.current.files
await props.changeFile(file)
console.log('PROPS:', props.file)
console.log('FILE:', file)
}
return (
<div className={mod.Avatar}>
<form method="post" action="" encType="multipart/data">
<label id={mod.l} htmlFor={mod.ava}><img src={ava} alt=''/></label>
<input ref={newInput} type="file" id={mod.ava} name="ava" accept='image/*' onChange={upload} files={props.file}/><br />
</form>
</div>
)
Функция от моего редуктора:
case CHANGE_FILE:{
console.log('ACTION.FILE', action.file)
let newFile = action.file
console.log('NEW STATE', {...state, file: newFile})
return {...state, file: newFile}
}
Это работает для текста, но когда я использую ввод файла, он не обновляется props.
Я зарегистрировал его и вижу, что отправил новый файл в штат, но реквизит все еще пуст. Логи моей консоли
ACTION.FILE FileList {0: File, length: 1}l
NEW.FILE FileList {0: File, length: 1}
NEW STATE {posts: Array(4), textAreaValue: "aa", file: FileList}
PROPS:
FILE: FileList {0: File, length: 1}