用于循环反应渲染方法

use*_*375 31 javascript reactjs

我想为我的grid创建分页链接.我将maxPages(number)属性传递给组件,但我无法在render方法中使用.我能做什么 ?

var Pagination = React.createClass({

render: function(){


    return(
    <div class="text-center">
        <ul class="pagination">

            <li><a href="#">«</a></li>
            {for (var i=0;i <10;i++;)
            {
              return( <li><a href="#">i + 1 </a></li>);
            }
            }

            <li><a href="#">»</a></li>
        </ul>
    </div>);

}});
Run Code Online (Sandbox Code Playgroud)

ade*_*neo 25

您可以在渲染之前运行循环(请注意循环中存在错误for)

var lis = [];

for (var i=0; i<10; i++) {
    lis.push(<li><a href="#">{i + 1}</a></li>);
}

var Pagination = React.createClass({
    render: function(){
        return(
            <div class="text-center">
                <ul class="pagination">

                    <li><a href="#">«</a></li>
                    {lis}
                    <li><a href="#">»</a></li>
                </ul>
            </div>
        );
    }
});
Run Code Online (Sandbox Code Playgroud)

小提琴


Fel*_*ing 9

您只能将表达式嵌入JSX中.

<ul className="pagination">{children}</ul>
Run Code Online (Sandbox Code Playgroud)

转换成类似的东西

React.createElement('ul', {className: 'pagination'}, children);
Run Code Online (Sandbox Code Playgroud)

你现在看到你怎么可能永远不会有一个for循环代替children?语句不能在函数调用表达式中.

您可以事先创建一个数组,就像adeneo在答案中所示.

  • 它是!它只是适量的魔法:)(我的个人意见) (2认同)