否则,如果我的条件部分没有返回

问题描述 投票:0回答:1

MY conditional应该显示用户创建的任何视频,否则它会返回创建视频的提示。 if部分对有视频的用户有效,而my else if部分对没有视频的用户不返回。我想念什么?

const UserPage = props => {
  const { username } = useParams();

  useEffect(() => {
    props.getUserVideos(localStorage.getItem("token"), username);
  }, [username]);

  let greeting;

  if (localStorage.getItem("username") === username) {
    greeting = `Welcome ${username}`;
    console.log("Welcome");
  } else {
    greeting = `${username} Videos`;
    console.log(username);
  }
  //this if statement will greet a user with a list of their videos, otherwise it will send a prompt to create a video

  return (
    <>
      <Container>
        <h1>{greeting}</h1>
        <div style={videoListContainer}>
          <div style={VideoThumbsContainer}>
            {props.userVideos && props.userVideos ? (
              props.userVideos.map(video => {
                return (
                  <div key={video.id}>
                    <h3>{video.video_title}</h3>
                    <Link to={`/videos/${video.id}`}>
                      <Thumbnail video={video} />
                    </Link>
                  </div>
                );
              })
            ) : (
                <p>
                  Looks like you haven't created any videos yet, lets {""}
                  <Link to="/create">create some videos!</Link>
                </p>
            )}
          </div>
        </div>
      </Container>
    </>
  );
};

const mapStateToProps = state => ({
  userVideos: state.userVideos,
  getUserVideosStart: state.getUserVideosStart,
  getUserVideosSuccess: state.getUserVideosSuccess,
  getUserVideosError: state.getUserVideosError
});

export default connect(
  mapStateToProps,
  { getUserVideos }
)(withRouter(UserPage));
javascript
1个回答
0
投票

这似乎很奇怪:

props.userVideos && props.userVideos

您要检查同一件事两次。这些中的任何一个在任何时候都不会是“真实的”,而另一个则不是。也许您打算检查数组的[[length?:

props.userVideos && props.userVideos.length > 0

0
投票
我认为您的逻辑倒退:

localStorage.getItem("username") === username

听起来像“现有用户”逻辑,但是在您的代码中显示为“欢迎”消息。

我猜是您的数据结构化方式,getItem(“ username”)永远不会等于用户名]]

© www.soinside.com 2019 - 2024. All rights reserved.