Мой реквизит не обновляется после отправки действия, но состояние было обновлено - PullRequest
0 голосов
/ 06 января 2020

У меня есть компонент аватара:

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}
...