为什么我的数组数据不能在渲染函数REACTJS中打印?

时间:2018-02-18 08:17:28

标签: javascript arrays reactjs

我被困在反应中 我有一个函数,其中有一个包含一些值的数组,但是当我想在渲染函数中访问该数组并使用props将它传递给另一个函数时,它返回一个空行数组。
我该怎么做才能解决这个问题?

像这样:

  • 在功能中:
    this.usersAnswerXML = ["ID0", "ID1", "ID2"]

  • 在渲染中:
    this.usersAnswerXML = []

这是我的代码,我做错了什么?

handleSplitContentClick(contentId, selectionType) {
  let isCorrect

  if (selectionType == 'selected') {
    const index = this.correctAnswers.indexOf(contentId);

    if (index > -1) {
      this.userCorrectAnswers.push(contentId);

      if (this.correctAnswers.length === this.userCorrectAnswers.length &&
          this.userUncorrectAnswer.length == 0) {

        isCorrect = this.correct

      } else {
        isCorrect = this.incorrect        
      }

    } else {
      this.userUncorrectAnswer.push(contentId);
      isCorrect = this.incorrect       
    }

  } else if (selectionType == 'disselected') {
    const index = this.correctAnswers.indexOf(contentId);

    if (index > -1) {
      this.userCorrectAnswers.splice(index, 1);
      isCorrect = this.incorrect

    } else { 
      this.userUncorrectAnswer.splice(index, 1);

      if (this.correctAnswers.length === this.userCorrectAnswers.length &&
          this.userUncorrectAnswer.length == 0) {
        isCorrect = this.correct

      } else {
        isCorrect = this.incorrect           
      }
    }
  }

  this.userAnswerXML = this.userCorrectAnswers.join(',')
  this.usersAnswerXMLs  = this.userAnswerXML  + ',' + 
                          this.userUncorrectAnswer.join(',')
  this.usersAnswerXML = this.usersAnswerXMLs.split(',')

  console.log(this.usersAnswerXML)

  if (window.uaXML) {
    this.userAnswerXML = window.uaXML 
    console.log(this.userAnswerXML + "data")   
  }

  // this.usersAnswerXML = window.uaXML
  console.log(window.uaXML)

  this.userAnswerXML  = "<smans type='4'><div id='textID0' userAns='" + 
                         this.usersAnswerXML + "'></div></smans>"

  $("#special_module_user_xml").val(this.userAnswerXML )
  console.log(this.usersAnswerXML)            
}
} // Editor's note: this is an extra curly brace


render() {
  if (this.props.remedStatus) {
    console.log(this.usersAnswerXML)
    console.log("inside remed")
    return (
      <HotspotRemed 
        xml={this.receivedXML}
        userXml={this.usersAnswerXML}
        correctAnswer ={this.ansString}
        type={this.splitType}
      />
    ) 
  } else { 
    return (
      <div className="previewtemplate" style ={template}>
      {this.templateArea(this.state.templateType)}
      </div>
    );
  }
}
} // Editor's note: another extra curly brace
} // Editor's note: another one again

0 个答案:

没有答案