Reactjs 从<;发送函数;输入>;onChange函数

Reactjs 从<;发送函数;输入>;onChange函数,reactjs,graphql,graphql-js,Reactjs,Graphql,Graphql Js,我的组成部分: class Admin extends React.Component { constructor(props) { super(props); } uploadFile = async (event, refetch) => { await uploadFileToBucket(event, true); refetch(); // refetch is undefined }; render() { return

我的组成部分:

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
类管理扩展了React.Component{
建造师(道具){
超级(道具);
}
uploadFile=async(事件,重新蚀刻)=>{
等待上传FileToBucket(事件,true);
refetch();//refetch未定义
};
render(){
返回(
{(数据,重新蚀刻)=>(
this.uploadFile(事件,重新蚀刻)}/>
)}
);
}
}
导出默认管理员

文件上载完成后,我想重新提取graphql查询。因此,我需要将refetch函数发送到我的
上传文件
。我该怎么做?

我认为这样做:

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

我认为这样做:

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

0xc14m1z的答案是正确的

下面是一个“更简洁”的语法,可以通过预先配置函数来解决您的问题:

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

0xc14m1z的答案是正确的

下面是一个“更简洁”的语法,可以通过预先配置函数来解决您的问题:

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

Input onChange只提供事件,而不提供重新蚀刻。要获取最新的数据,请像执行UploadFileToBucketInputOnChange一样调用do fetch,它只提供事件,而不提供重新提取。要获取最新数据,请像执行uploadFileToBucket一样执行fetch调用