0

我以这种方式重新渲染 jqmobile 表并且所有工作:

var List = React.createClass({

  componentDidMount:function(){
    $(".list-box-app-list").table();
  },

  componentDidUpdate:function(){
    $(".list-box-app-list").table();
  },

  render: function() {
    var allListItems = this.props.allListItems;
    var listItems = [];

    for (var key in allListItems) {
      listItems.push(<ListItem key={key} list_item={allListItems[key]} />); 
    }

    return (
      <table  data-role="table" data-mode="columntoggle" className="ui-responsive list-box-app-list">
        <thead>
          <tr>
            <th data-priority="2">Id</th>
            <th>Author</th>
            <th data-priority="1">Text</th>
          </tr>
        </thead>
        <tbody>
          {listItems}
        </tbody>
      </table>
    );
  }

});

示例在这里:https://eugen35@bitbucket.org/eugen35/flux-todomvc.git

分支:listAndJQMobile

npm install
npm run watch // create bundle.js
npm start // run server.js

有没有办法更优化地做到这一点?

因为我的例子我认为这样工作:1)(重新)在DOM中渲染JSX,2)用.table()初始化JQMobile-table;早些时候我猜想,reactDOM 只会更新我的表中的一些新行,我不必重新初始化 JQM 表。但这不起作用。每次更新后可能会在 DOM 整个表中重新呈现 reactjs。从那我需要将它重新初始化为 JQM 表。

我做错了什么?

4

0 回答 0