Отправка функции из функции <input>onChange - PullRequest
0 голосов
/ 09 января 2019

Мой компонент:

class Admin extends React.Component {
  constructor(props) {
    super(props);
  }

  uploadFile = async (event, refetch) => {
    await uploadFileToBucket(event, true);
    refetch(); // refetch is undefined
  };

  render() {
    return (
     <GraphQlDataFetcher query={getObjectsInDefaultBucket()}>
        {(data, refetch) => (
           <Files files={data.bucketObjects}/>
            <input type="file" onChange={(refetch) => this.uploadFile(event, refetch)}/>

          )}
       </GraphQlDataFetcher>

    );
  }
}


export default Admin

Когда загрузка файла будет завершена, я хочу перезапустить graphql-запрос. Поэтому мне нужно отправить функцию рефетча до моего uploadFile. Как мне это сделать?

Ответы [ 2 ]

0 голосов
/ 09 января 2019

0xc14m1z ответ правильный.

Вот «более чистый» синтаксис для решения вашей проблемы путем предварительной настройки вашей функции:

<input type="file" onChange={this.uploadFile(refetch)} />

И ваша функция:

uploadFile = async refetch => event => {
0 голосов
/ 09 января 2019

Я думаю, что делает это:

<input type="file" onChange={ (refetch) => this.uploadFile(event, refetch) } />

вы переопределяете метод refetch, переданный GraphQlDataFetcher, вы можете попробовать сделать это вместо этого?

<input type="file" onChange={ event => this.uploadFile(event, refetch) } />
...