使用React

时间:2018-07-04 08:52:37

标签: reactjs

很难理解正确的方法,因为大多数示例似乎都使用了我不想使用的Babel。

我有以下课程:

            class regionalTrendsTemplate2 extends React.Component {
                renderTemplate(article) {
                    return React.createElement('div', { className: this.props.cellsize },
                                                React.createElement('div', { className: 'card', style: { 'marginBottom': '50px', 'boxShadow': '0 8px 17px 0 rgba(0,0,0,.2), 0 6px 20px 0 rgba(0,0,0,.19)' } },
                                                React.createElement('div', { className: 'card-block' },
                                                React.createElement('div', { className: 'card-img-top', style: { 'height': '250px', 'borderRadius': '.25rem', 'boxShadow': '0 8px 17px 0 rgba(0,0,0,.2), 0 6px 20px 0 rgba(0,0,0,.19)', 'backgroundImage': 'url(' + workingDirectory + 'images/trendsImages/' + article.image + ')', 'backgroundSize': 'cover', 'backgroundRepeat': 'no-repeat', 'backgroundPosition': 'center center' } }),
                                                React.createElement('div', { className: 'card-body' },
                                                React.createElement('div', { className: 'card-title' }, ''),
                                                React.createElement('div', { className: 'card-text' }, article.text)))))
                }

                render() {
                    var self = this;
                    const rows = [];
                    trends[0].Trends[0].Regional.map(function (article, index) { rows.push(self.renderTemplate(article)) });
                    return  rows
                }

            }

通过该方法调用哪个:

ReactDOM.render(React.createElement(regionalTrendsTemplate2, { cellsize: 'col-sm-3'}), document.getElementById('divRegionalTrends'));

我这样做的原因是,我可以通过一个调用传递各种道具,然后将其填充到模板中。到目前为止一切顺利。

但是,render()方法对我的HTML和“ divRegionalTrends”容器中的内容确实做了一些奇怪的格式化。

如果我具有以下条件:

            var regionalTrendsTemplate = trends[0].Trends[0].Regional.map(function (article, index) {
                return React.createElement('div', { className: 'col-sm-3' },
                        React.createElement('div', { className: 'card', style: { 'margin-bottom': '50px', 'box-shadow': '0 8px 17px 0 rgba(0,0,0,.2), 0 6px 20px 0 rgba(0,0,0,.19)' } },
                        React.createElement('div', { className: 'card-block' },
                        React.createElement('div', { className: 'card-img-top', style: { 'height': '250px', 'borderRadius': '.25rem', 'boxShadow': '0 8px 17px 0 rgba(0,0,0,.2), 0 6px 20px 0 rgba(0,0,0,.19)', 'backgroundImage': 'url(' + workingDirectory + 'images/trendsImages/' + article.image + ')', 'backgroundSize': 'cover', 'backgroundRepeat': 'no-repeat', 'backgroundPosition': 'center center' } }),
                        React.createElement('div', { className: 'card-body' },
                        React.createElement('div', { className: 'card-title' }, ''),
                        React.createElement('div', { className: 'card-text' }, article.text)))))
            });
            
            var regionalTrends = React.createElement('div', { 'cellsize': 'col-md-3' }, regionalTrendsTemplate);
            ReactDOM.render(regionalTrends , document.getElementById('divRegionalTrends'));

然后完美呈现在“ divRegionalTrends” div中,但我似乎无法访问任何道具!

有人可以解释哪种方法正确吗?

将道具传递到从父级冒泡的模板中,或者为什么第一种方法中的渲染完全不同。

0 个答案:

没有答案