如何让我的React应用程序使用crud渲染Bootstrap表

时间:2016-09-17 12:29:50

标签: reactjs react-jsx react-bootstrap react-bootstrap-table

我正在使用以下代码生成一个简单的UI,我正在尝试将其转换为使用Bootstrap。

这是我的原始代码(使用Skeleton);

render:function(){
        return (
            <div className="grocery-item row">
                <div className="six columns">
                    <h4 className={this.props.item.purchased ? "strikethrough" : "" }>
                        {this.props.item.name}
                    </h4>
                </div>
                <form onSubmit={this.togglePurchased} className="three columns">
                    <button className={this.props.item.purchased ? "btn btn-danger" : "button-primary"}>{this.props.item.purchased ? "unbuy" : "buy"}</button>
                </form>
                <form className="three columns" onSubmit={this.delete}>
                    <button>&times;</button>
                </form>
            </div>
        )
    }

我尝试过这样的事情;

render:function(){
        return (        
          <table class="table table-striped">
            <thead>
              <tr>
                <th>Column 1</th>
                <th>Columan 2</th>
                <th>Columan 3</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <h4 className={this.props.item.purchased ? "strikethrough" : "" }>{this.props.item.name}</h4>
                <form onSubmit={this.togglePurchased} className="three columns">
                  <button className={this.props.item.purchased ? "btn btn-danger" : "button-primary"}>{this.props.item.purchased ? "unbuy" : "buy"}</button>
                </form>
                <form className="three columns" onSubmit={this.delete}>
                    <button>&times;</button>
                </form>
              </tr>
            </tbody>
          </table>
        )
    }

但它不像我期望的那样工作。我使用react-express-examplar作为我的起点。

如何在我的React应用程序中使用Bootstrap表?

3 个答案:

答案 0 :(得分:0)

如果您使用create-react-app启动应用,我认为您会更轻松。他们甚至给instructions on how to use Bootstrap with React

你说你是React的新手。有许多活动部件一开始可能难以理解。使用create-react-app会消除很多学习曲线,让您更容易开始尽可能少的摩擦。

祝你好运!

答案 1 :(得分:-1)

根据我的理解,您希望名称和购买/取消购买按钮在相应的列下排成一行。 在tr标记中,将每个html部分作为td标记 请参阅以下html代码段:

 <td>
  <h4 class="strikethrough">
                    name
  </h4>
</td>
<td>
  <form class="three columns">
      <button class="btn btn-info">buy</button>
  </form>
</td>
<td>
  <form class="three columns">
      <button>&times;</button>
  </form>
</td>

请尝试同样修改组件呈现方法中的html。

答案 2 :(得分:-1)

  
    

您将表添加到错误的Component。它必须在GroceryItemList.jsx

上   

警告:表格内不允许使用表格。我只是提供结构,UI和代码未经过测试。

:::结构应该像 -

GroceryItemList.jsx Component ::::

render:function(){
        return (
            <div>
                <table className="table">
                    <thead>
                      <tr>
                        <th>Column 1</th>
                        <th>Columan 2</th>
                        <th>Columan 3</th>
                      </tr>
                    </thead>
                    <tbody>
                        {this.props.items.map((item,index)=>{
                            return (
                                <GroceryItem item={item} key={"item"+index} />
                            )
                        })}
                        <GroceryListAddItem />
                    </tbody>
                </table>
            </div>
        )
    }

GroceryItem.jsx Component ::::

render:function(){
    return (
        <tr>
            <td>
                <h4 className={this.props.item.purchased ? "strikethrough" : "" }>
                    {this.props.item.name}
                </h4>
            </td>
            <td>
                <form onSubmit={this.togglePurchased}>
                    <button className={this.props.item.purchased ? "" : "button-primary"}>{this.props.item.purchased ? "unbuy" : "buy"}</button>
                </form>
            </td>
            <td>
                <form onSubmit={this.delete}>
                    <button>&times;</button>
                </form>
            </td>
        </tr>
    )
}