Javascript 如何连接JSX而不遇到;单根“;JSX问题
我想知道如何在JSX中做到这一点。如果您查看下面的代码,就会发现有重复的部分,其中设置了Javascript 如何连接JSX而不遇到;单根“;JSX问题,javascript,reactjs,react-jsx,jsx,Javascript,Reactjs,React Jsx,Jsx,我想知道如何在JSX中做到这一点。如果您查看下面的代码,就会发现有重复的部分,其中设置了,用于包装JSX。如何在if/else循环和单个return语句之外做到这一点,而不会遇到JSX的“单根”问题 buildComponent() { const { element: {title, type, items }, name } = this.props; const cssComponentName = name.toLowerCase(); if (type === 'string' ||
,用于包装JSX。如何在if/else循环和单个return语句之外做到这一点,而不会遇到JSX的“单根”问题
buildComponent() {
const { element: {title, type, items }, name } = this.props;
const cssComponentName = name.toLowerCase();
if (type === 'string' || type === 'number') {
return (
<div className={`${cssComponentName}-container`}>
<label htmlFor={name}>{title}</label>
<input type="text" name={name} />
</div>
);
}
if (type === 'array') {
return (
<div className={`${cssComponentName}-container`}>
<label htmlFor={name}>{title}</label>
<select name={name}>
{ this.buildDropdown(items.enum, items.enumNames) }
</select>
</div>
);
}
buildComponent(){
const{element:{title,type,items},name}=this.props;
const cssComponentName=name.toLowerCase();
如果(类型=='string'| |类型=='number'){
返回(
{title}
);
}
如果(类型=='array'){
返回(
{title}
{this.buildDropdown(items.enum,items.enumNames)}
);
}
}可以使用无状态函数按以下可能的形式重新构造
buildComponent() {
const { element: {title, type, items }, name } = this.props;
const cssComponentName = name.toLowerCase();
const DivWrapper = (props) => {
return (
<div className={`${cssComponentName}-container`}>
<label htmlFor={name}>{title}</label>
{props.children}
</div>
);
};
return (
<DivWrapper>
{ (type === 'string' || type === 'number') ?
<input type="text" name={name} /> :
(type === 'array') ?
<select name={name}>
{ this.buildDropdown(items.enum, items.enumNames) }
</select> : null
}
</DivWrapper>
);
}
buildComponent(){
const{element:{title,type,items},name}=this.props;
const cssComponentName=name.toLowerCase();
常量DivWrapper=(道具)=>{
返回(
{title}
{props.children}
);
};
返回(
{(类型=='string'| |类型=='number')?
:
(类型='array')?
{this.buildDropdown(items.enum,items.enumNames)}
:null
}
);
}
可以使用无状态函数按以下可能的形式重新构造
buildComponent() {
const { element: {title, type, items }, name } = this.props;
const cssComponentName = name.toLowerCase();
const DivWrapper = (props) => {
return (
<div className={`${cssComponentName}-container`}>
<label htmlFor={name}>{title}</label>
{props.children}
</div>
);
};
return (
<DivWrapper>
{ (type === 'string' || type === 'number') ?
<input type="text" name={name} /> :
(type === 'array') ?
<select name={name}>
{ this.buildDropdown(items.enum, items.enumNames) }
</select> : null
}
</DivWrapper>
);
}
buildComponent(){
const{element:{title,type,items},name}=this.props;
const cssComponentName=name.toLowerCase();
常量DivWrapper=(道具)=>{
返回(
{title}
{props.children}
);
};
返回(
{(类型=='string'| |类型=='number')?
:
(类型='array')?
{this.buildDropdown(items.enum,items.enumNames)}
:null
}
);
}
您也可以尝试以下方法:
buildElement(type, name, items) {
if (type === 'string' || type === 'number')
return buildInput(name);
else if (type === 'array')
return buildSelect(name, items);
}
buildSelect(name, items) {
return (<select name={name}>
{ this.buildDropdown(items.enum, items.enumNames) }
</select>);
}
buildInput(name) {
return (<input type="text" name={name} />);
}
buildComponent() {
const { element: {title, type, items }, name } = this.props;
const cssComponentName = name.toLowerCase();
return (
<div className={`${cssComponentName}-container`}>
<label htmlFor={name}>{title}</label>
{this.buildElement(type, name, items)}
</div>
);
}
buildElement(类型、名称、项){
如果(类型=='string'| |类型=='number')
返回buildInput(名称);
else if(类型==='array')
返回buildSelect(名称、项目);
}
buildSelect(名称、项目){
返回(
{this.buildDropdown(items.enum,items.enumNames)}
);
}
buildInput(名称){
返回();
}
buildComponent(){
const{element:{title,type,items},name}=this.props;
const cssComponentName=name.toLowerCase();
返回(
{title}
{this.buildElement(类型、名称、项)}
);
}
您也可以尝试以下方法:
buildElement(type, name, items) {
if (type === 'string' || type === 'number')
return buildInput(name);
else if (type === 'array')
return buildSelect(name, items);
}
buildSelect(name, items) {
return (<select name={name}>
{ this.buildDropdown(items.enum, items.enumNames) }
</select>);
}
buildInput(name) {
return (<input type="text" name={name} />);
}
buildComponent() {
const { element: {title, type, items }, name } = this.props;
const cssComponentName = name.toLowerCase();
return (
<div className={`${cssComponentName}-container`}>
<label htmlFor={name}>{title}</label>
{this.buildElement(type, name, items)}
</div>
);
}
buildElement(类型、名称、项){
如果(类型=='string'| |类型=='number')
返回buildInput(名称);
else if(类型==='array')
返回buildSelect(名称、项目);
}
buildSelect(名称、项目){
返回(
{this.buildDropdown(items.enum,items.enumNames)}
);
}
buildInput(名称){
返回();
}
buildComponent(){
const{element:{title,type,items},name}=this.props;
const cssComponentName=name.toLowerCase();
返回(
{title}
{this.buildElement(类型、名称、项)}
);
}