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