2017-06-29 53 views
0

我遇到的问题是我有一个按钮:管理员被称为上呈现,而不是点击

const LogActions = ({ resource, filters, displayedFilters, filterValues, basePath, showFilter, refresh, record }) => (
    <CardActions style={cardActionStyle}> 
     <RaisedButton primary label="Cancel" onClick={HandleClick(record["id"])} />/> 
    </CardActions> 
); 

此按钮列表中使用像这样:

export const LogList = (props) => (
    <List {...props} perPage={100} title="Logs and Reports" filters={< FileFilter/>}> 
     <Datagrid> 
      <TextField source="inputfile" label="Input File" /> 
      <TextField source="cycle" label="Cycle" /> 
      <TextField source="job" label="Job" /> 
      <TextField source="name" label="File Name" /> 
      <ShowButton/> 
      <LogActions/> 
     </Datagrid> 
    </List> 
); 

这是HandleClick:

const HandleClick = (id) => { 
     fetch(`controller_service/archivedfiles/${id}`, { method: 'GET', body:{} }) 
      .then(() => { 
       // do stuff 
      }) 
      .catch((e) => { 
       console.error(e); 
       //error 
      }); 
    } 

好了,所以我的问题是,每当我去这个页面,它会创建数据网格,但是当按钮被呈现它调用HandleClick,然后我甚至在我点击按钮之前获取该数据,当我点击按钮时什么也没有发生。有人能解释我做错了什么吗?

+0

功能是触发任务:'的onClick = {HandleClick(记录[ “ID”])}'。如果你不想要这种行为,那么你应该做'onClick = {HandleClick}'并修改你的'HandleClick'函数。 – wesley6j

回答

0

正如wesley6j所说,当您为参数赋值时,函数会被调用。 A到避免这种情况的方法是使用.bind(this,params)或类似这样的另一个功能包住HandleClick

onClick={() => HandleClick(record["id"])} 
+0

甜蜜的谢谢你!这似乎奏效了。 – Stebermon