在React中返回并渲染一个div



我试图从react中的函数动态返回一个div。我在组件的渲染函数中直接调用了一个渲染函数,但是它没有渲染出来。我确信这是代码中的一个简单错误,但我无法发现它。

代码:
import React, { Component } from 'react'
import ProgressBar from './ProgressBar'
require('styles/_servicesPage/priceCalc.css')
export default class PriceCalculator extends Component {
  componentWillMount() {
    this.state = {
      arr: []
    }
  }
  minimizeDiv() {
    this.props.toggleDiv(false)
  }

  returnDiv(){
    return
      <div>
        <p>
          Printing out text!
        </p>
      </div>
  }
  render() {
    var styleVar = {
      backgroundImage: 'url(assets/images/services/pricecalc_blue_bg.svg)',
      backgroundPosition: 'right center'
    }
    return (
      <div className="service-form" id="priceCalc" style={styleVar}>
        <div>
          <h1>Priskalkyl för badrum</h1>
          <p>
            Välkommen att fylla i formuläret,
            så är du ett steg närmare dina drömmars badrum.
          </p>
        </div>
        {this.returnDiv}
        <div onClick={this.minimizeDiv.bind(this)} className="minimizeBorder">
          <img src="assets/arrows/minimizeArrow.svg"/>
          <p>Minimera</p>
          <img src="assets/arrows/minimizeArrow.svg"/>
        </div>
      </div>
    )
  }
}

当您通过函数呈现div时,div的意图和位置很重要。

renderDiv() {
  return (<div>
          </div>)
}

可以但不能

renderDiv() {
  return 
      (<div>
      </div>)
}

调用returnDiv,同时将返回的多行jsx放在括号内,否则它可能返回null;

    import React, { Component } from 'react'
    import ProgressBar from './ProgressBar'
    require('styles/_servicesPage/priceCalc.css')
    export default class PriceCalculator extends Component {
      componentWillMount() {
        this.state = {
          arr: []
        }
      }
      minimizeDiv() {
        this.props.toggleDiv(false)
      }

      returnDiv(){
        return (
          <div>
            <p>
              Printing out text!
            </p>
          </div>
        )
      }
      render() {
        var styleVar = {
          backgroundImage: 'url(assets/images/services/pricecalc_blue_bg.svg)',
          backgroundPosition: 'right center'
        }
        var returnDiv = this.returnDiv();
        return (
          <div className="service-form" id="priceCalc" style={styleVar}>
            <div>
              <h1>Priskalkyl för badrum</h1>
              <p>
                Välkommen att fylla i formuläret,
                så är du ett steg närmare dina drömmars badrum.
              </p>
            </div>
            {returnDiv}
            <div onClick={this.minimizeDiv.bind(this)} className="minimizeBorder">
              <img src="assets/arrows/minimizeArrow.svg"/>
              <p>Minimera</p>
              <img src="assets/arrows/minimizeArrow.svg"/>
            </div>
          </div>
        )
      }
    }

最新更新