Javascript 在reactjs中呈现数组

Javascript 在reactjs中呈现数组,javascript,reactjs,Javascript,Reactjs,我想在reactjs中创建一个数组并进行渲染。目前, 我有一个数组,我把一个组件推到它上面,它就会被渲染到屏幕上。然而,我想要的是,在进行第二次选择之后,第一个和第二个组件都应该出现在屏幕上 renderQuestions=()=>{ let questions=[]; console.log('rating',this.state.ratingType); if(this.state.ratingType=== '1'){ questions.

我想在reactjs中创建一个数组并进行渲染。目前, 我有一个数组,我把一个组件推到它上面,它就会被渲染到屏幕上。然而,我想要的是,在进行第二次选择之后,第一个和第二个组件都应该出现在屏幕上

renderQuestions=()=>{
    let questions=[];
    console.log('rating',this.state.ratingType);


    if(this.state.ratingType=== '1'){
        questions.push(<NumberRating/>);
    }
    else if (this.state.ratingType === '2' ){
        questions.push( <StarRating/>);
    }
    else if (this.state.ratingType === '3'){
        questions.push( <PollRating/>);
    }

    console.log('Questions',questions);
    console.log('Length',questions.length);
    return questions;

}
在我的内心深处

render(){
   return(
     <RaisedTextButton
                titleColor="white"
                title={'Add Question'}
                onPress={() => this.openDialog()}
            />
            <FormDialog
                title={'Select the kind of rating'}
                visible={this.state.visible}
                onRequestClose={()=>this.submitDialog()}
                onSubmit={()=>this.hideDialog()}

            >
                <Select
                    label='Label '
                    options={[
                        {_id: '1', name: 'NumberRating'},
                        {_id: '2', name: 'StarRating'},
                        {_id:'3', name: 'PollRating'}
                    ]}
                    labelKey="name"

                    onChange={(value) =>this.questionType(value)}
                    valueKey="_id"
                    isValueObject={!false}
                />
            </FormDialog>
               {this.renderQuestions()}
            </View>
  );}
请注意,我的渲染中有一个按钮,按下此按钮后,state.ratingType将更改。

使用此代码更改返回代码。实际上,当您调用render的方法id return时,它应该返回jsx或一些文本。但数组是js变量,它不会将我们自己分割成要渲染的部分。您需要将数组的每个组件放在一个容器中,然后返回它

return (
            <div className="container">
            {questions.map(question => (question))}
            </div>
        )
可以使阵列处于组件状态,单击按钮后,阵列将保留ratingType选择,并在基于阵列的渲染中渲染组件

Constructor(){
  super();
  this.state={
    questions:[]
  }
}
这里,this.renderQuestions返回数组。这需要使用单个节点div包装,或者如果不必使用div,可以使用React.FragmentA think;if-else-if分支只允许您渲染一种评级类型。这是有意的吗?这与呈现列表无关;只是JavaScript

渲染列表的两个选项:

从“React”导入React,{Component} 类应用程序扩展组件{ 渲染器问题{ 返回[ “a”、“b”、“c” ] } 渲染元素{ 返回[ 1. 2. 3. ] } 渲染{ const questions=this.renderQuestions 回来 {questions.mapvalue,索引=>{value} {this.renderQuestionElements} } } 导出默认应用程序; 或者只是{……问题}
return (
   <React.Fragment>
      {this.renderQuestions().map(question => question)}
   </React.Fragment>
)