2017-08-07 6 views
1

Je travaille sur l'application React/Redux et j'utilise aussi le BootstrapTable.Comment puis-je accéder aux accessoires dans la méthode bootstrapTable dataFormat

Dans la méthode dataFormat, dois-je également passer les accessoires? en ce moment ma méthode de format ressemble à:

function linkFormatter(cell, row) { 
    //Logic 
} 

J'ai essayé d'utiliser:

let self = this; 

pour accéder aux accessoires comme this.props.isStatatusActive mais il m'a aussi donné l'erreur: isStatatusActive is undefined.

Toutes les recommandations?

+0

peut vous fournir un contexte plus –

+0

ce que plus d'informations do u besoin? – Anna

+0

Si votre question est: "Comment puis-je formater des données supplémentaires en utilisant dataFormat?", Alors [ce lien] (https://allenfang.github.io/react-bootstrap-table/advance.html) sera plus utile. – petithomme

Répondre

1

Si je comprends bien votre question et vous voulez avoir accès non seulement à la cellule et la ligne de la table, mais aussi vos accessoires, il est un très bon exemple dans this article.

formatExtraData est ce que vous cherchez.

function enumFormatter(cell, row, enumObject){ 
return enumObject[cell]; 
} 

export default class ExtraDataColumnFormatTable extends React.Component{ 
    render(){ 
     return (
      <BootstrapTable data={products} > 
       <TableHeaderColumn dataField="id" isKey={true}>Product ID</TableHeaderColumn> 
       <TableHeaderColumn dataField="name">Product Name</TableHeaderColumn> 
       <TableHeaderColumn dataField="quality" dataFormat={enumFormatter} formatExtraData={qualityType}>Product Quality</TableHeaderColumn> 
       <TableHeaderColumn dataField="inStock" dataFormat={enumFormatter} formatExtraData={inStockStatus}>Product Stock Status</TableHeaderColumn> 
      </BootstrapTable> 
     ); 
    } 
}; 


Vous pouvez probablement envoyer `this.props. directement dans cette méthode:

formatExtraData={this.props}

Et puis votre formatter ressemblerait à ceci:

function formatter(cell, row, props) { 
    // Logic 
}