【问题标题】:JSX fragment has no corresponding closing tagJSX 片段没有对应的结束标记
【发布时间】:2020-11-11 20:57:15
【问题描述】:

如果条件等于真,我正在尝试有条件地渲染一些元素。但据我了解,它给了我一个“解析错误:相邻的 JSX 元素必须被包裹在一个封闭的标签中。你想要一个 JSX 片段 ...> 吗?”就在第 35 行及以下。我将整个代码都包裹在一个 React.Fragment 标记中。请帮忙。我不明白为什么会出现此错误。

import './ProfilePage.css';
import JournalCard from '../../components/JournalCard/JournalCard';
import { Link } from 'react-router-dom';
import userService from '../../services/userService';

class ProfilePage extends Component {
    constructor(props) {
        super(props)
    }
    render() {
        return(
            <>
            <div className="profilePage">
            <div className="sign">
             <div className="zodiac-sign">{this.props.user.signs}</div>
               {this.props.user.signs === this.props.signs.sunSign ? 
               <div className="info">
                <div>image:{this.props.signs.image}</div>
                <div>sign: {this.props.signs.sunSign}
                <div>Birthdates:{this.props.signs.dates}</div>
                <div>Element:{this.props.signs.element}</div>
                <div>Planet:{this.props.signs.planet}</div>
               <div>Strengths:{this.props.signs.strengths}</div>
               <div>Weaknesses:{this.props.signs.weaknesses}</div>
               <div>Likes:{this.props.signs.likes}</div>
               <div>Dislikes:{this.props.signs.dislikes}</div>
               <div>Compatibility:{this.props.signs.compatiblity}</div>
                <div>Lucky Numbers:{this.props.sign.luckyNumbers}</div>
                </div>
                :
                <></>
               }
            </div>
            <div className="horoscope">
                <h2>Horoscope</h2>
                {this.props.user.signs === this.props.horoscopes.sign.name ? 
                <div className="horoscope-display">{this.props.horoscopes.result.description}</div>
                :
                <></>
            }
            </div>
            <div className="journal">
                <h3>Journal</h3>
                <div id="journal-box">
                    <div className="journal-display">
                        {this.props.journals.map(journal => 
                            <JournalCard
                                key={journal._id}
                                journal={journal}
                                handleDeleteJournal={this.props.handleDeleteJournal}
                            />
                        )}
                    </div>
                </div>
                <br/>
                <Link className="btn pink lighten-1"
                    to={{ pathname: '/journal' }}>
                        Add Journal Entry
                </Link>
                <br/>
            </div>
            </div>
            </>
        )        
    }
}


export default ProfilePage;```

【问题讨论】:

  • 请继续格式化您的代码以避免此类错误
  • 我正在使用vscode,您对可以与js一起使用的格式扩展有什么建议吗?我有一个用于 python 但不是 js。
  • vscode中可以使用Prettier格式化JS
  • 立即下载。这很棒!!!!谢谢。

标签: javascript reactjs


【解决方案1】:

您在&lt;div className="sign"&gt; 中缺少关闭&lt;div&gt; 标记

应该是这样的

<div className="sign">
  <div className="zodiac-sign">{this.props.user.signs}</div>
  {this.props.user.signs === this.props.signs.sunSign ? (
    <div className="info">
      <div>image:{this.props.signs.image}</div>
      <div>
        sign: {this.props.signs.sunSign}
        <div>Birthdates:{this.props.signs.dates}</div>
        <div>Element:{this.props.signs.element}</div>
        <div>Planet:{this.props.signs.planet}</div>
        <div>Strengths:{this.props.signs.strengths}</div>
        <div>Weaknesses:{this.props.signs.weaknesses}</div>
        <div>Likes:{this.props.signs.likes}</div>
        <div>Dislikes:{this.props.signs.dislikes}</div>
        <div>Compatibility:{this.props.signs.compatiblity}</div>
        <div>Lucky Numbers:{this.props.sign.luckyNumbers}</div>
      </div>
    </div>
  ) : (
    <></>
  )}
</div>

【讨论】:

  • 另外我建议使用 { condition && render item } 而不是 { condition ?渲染项目:空项目},它只是更具可读性
猜你喜欢
  • 2021-06-14
  • 2018-04-20
  • 1970-01-01
  • 2017-03-18
  • 2023-03-27
  • 2021-05-04
  • 2015-08-31
  • 2019-01-24
  • 2018-12-06
相关资源
最近更新 更多