【问题标题】:Conditional statement in react doesnt work反应中的条件语句不起作用
【发布时间】:2021-01-02 06:44:39
【问题描述】:

如果用户是:

1. Is logged in
2. Is not administrator
3. Is not a moderator

所以我的代码是这样的:

<h2>Write a Review</h2>
           {errorResortReview && <Message variant='danger'>{errorResortReview}</Message>}
            {userInfo && (userInfo.role !== 'administrator' || userInfo.role !== 'resortOwner') ? (
            <form onSubmit={submitHandler}>
            <div className="form-group">
                <label for="rating">Rating</label>

                <ReactStars
                    count={5}
                    onChange={setRatingInput}
                    size={34}
                    activeColor="#ffd700"
                />
 
             </div>
  
            <div class="form-group">
               <textarea className="form-control" value={comment} onChange={(e) => setComment(e.target.value)} id="comment" rows="3"></textarea>
            </div>
            <button type="submit" className="btn btn-primary">Submit</button>
            </form>
            
            ) : <Message>Please <Link to='/login'>Login</Link> to write a review</Message>}
        </li>

当我在我的 react 组件上尝试这个时,即使用户是管理员和版主,它仍然显示表单。

注意:userInfo 保存的是当前登录用户的数据。

谁能发现这里的问题?

【问题讨论】:

  • 这永远是真的,对吧? userInfo.role !== 'administrator' || userInfo.role !== 'resortOwner'
  • 不应该是,userInfo &amp;&amp; userInfo.role !== 'administrator' &amp;&amp; userInfo.role !== 'resortOwner' 吗?

标签: javascript reactjs express redux


【解决方案1】:

你这里的逻辑不正确:

{userInfo && (userInfo.role !== 'administrator' || userInfo.role !== 'resortOwner') ? (

实现以下逻辑:

1. Is logged in
2. Is not administrator
3. Is not a moderator

用途:

{(userInfo && userInfo.role !== 'administrator' && userInfo.role !== 'resortOwner') ? (

【讨论】:

    猜你喜欢
    • 2021-09-04
    • 1970-01-01
    • 2021-06-18
    • 2011-01-08
    • 2011-12-04
    • 2012-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多