ReactJS 中三元运算符的问题
Problems with ternary operator in ReactJS
我正在尝试使用三元运算符在 reactJSm 中显示我的加载状态,但我不明白为什么它总是正确的,我正在使用 reactotron 来调试我的状态及其正常工作“onload: loading true,在 :loading false 之后。但是当我使用运算符时,它总是 true。
有人可以帮助我吗?
我试过使用 loading={loading ? 1 : 0} 在 Container 内但没有任何变化...
<Container>
<Content>
<header>
<p>Meus Meetups</p>
<button type="button">Novo Meetup</button>
</header>
<ul>
{loading ? (
<AiOutlineLoading color="#eb3443" size={40} />
) : (
meetups.map(meetup => (
<MeetList key={meetup.id}>
<Link to={`/details/${meetup.id}`}>
<strong>{meetup.title}</strong>
<p>
{format(parseISO(meetup.date), `dd 'de' MMMM 'às' HH'h'`, {
locale: pt,
})}
</p>
</Link>
</MeetList>
))
)}
</ul>
</Content>
</Container>
我以前遇到过这个问题。不确定这是否适合您,但对我有用的是像这样配置它:
{this.state.loading &&
<AiOutlineLoading color="#eb3443" size={40} />
}
{!this.state.loading &&
(
meetups.map(meetup => (
<MeetList key={meetup.id}>
<Link to={`/details/${meetup.id}`}>
<strong>{meetup.title}</strong>
<p>
{format(parseISO(meetup.date), `dd 'de' MMMM 'às' HH'h'`, {
locale: pt,
})}
</p>
</Link>
</MeetList>
))
)
}
接线员看起来不错。您确定加载状态具有有效值吗?尝试将加载更改为硬编码的假值以验证运算符是否正常。
希望对您有所帮助。如果您想了解更多知识,请阅读此 blog
render(){
const loading = this.state.loading === true;
return(
<Container>
<Content>
<header>
<p>Meus Meetups</p>
<button type="button">Novo Meetup</button>
</header>
<ul>
{loading ? (
<AiOutlineLoading color="#eb3443" size={40} />
) : (
meetups.map(meetup => (
<MeetList key={meetup.id}>
<Link to={`/details/${meetup.id}`}>
<strong>{meetup.title}</strong>
<p>
{format(parseISO(meetup.date), `dd 'de' MMMM 'às' HH'h'`, {
locale: pt,
})}
</p>
</Link>
</MeetList>
))
)}
</ul>
</Content>
</Container>
)
}
我正在尝试使用三元运算符在 reactJSm 中显示我的加载状态,但我不明白为什么它总是正确的,我正在使用 reactotron 来调试我的状态及其正常工作“onload: loading true,在 :loading false 之后。但是当我使用运算符时,它总是 true。 有人可以帮助我吗?
我试过使用 loading={loading ? 1 : 0} 在 Container 内但没有任何变化...
<Container>
<Content>
<header>
<p>Meus Meetups</p>
<button type="button">Novo Meetup</button>
</header>
<ul>
{loading ? (
<AiOutlineLoading color="#eb3443" size={40} />
) : (
meetups.map(meetup => (
<MeetList key={meetup.id}>
<Link to={`/details/${meetup.id}`}>
<strong>{meetup.title}</strong>
<p>
{format(parseISO(meetup.date), `dd 'de' MMMM 'às' HH'h'`, {
locale: pt,
})}
</p>
</Link>
</MeetList>
))
)}
</ul>
</Content>
</Container>
我以前遇到过这个问题。不确定这是否适合您,但对我有用的是像这样配置它:
{this.state.loading &&
<AiOutlineLoading color="#eb3443" size={40} />
}
{!this.state.loading &&
(
meetups.map(meetup => (
<MeetList key={meetup.id}>
<Link to={`/details/${meetup.id}`}>
<strong>{meetup.title}</strong>
<p>
{format(parseISO(meetup.date), `dd 'de' MMMM 'às' HH'h'`, {
locale: pt,
})}
</p>
</Link>
</MeetList>
))
)
}
接线员看起来不错。您确定加载状态具有有效值吗?尝试将加载更改为硬编码的假值以验证运算符是否正常。
希望对您有所帮助。如果您想了解更多知识,请阅读此 blog
render(){
const loading = this.state.loading === true;
return(
<Container>
<Content>
<header>
<p>Meus Meetups</p>
<button type="button">Novo Meetup</button>
</header>
<ul>
{loading ? (
<AiOutlineLoading color="#eb3443" size={40} />
) : (
meetups.map(meetup => (
<MeetList key={meetup.id}>
<Link to={`/details/${meetup.id}`}>
<strong>{meetup.title}</strong>
<p>
{format(parseISO(meetup.date), `dd 'de' MMMM 'às' HH'h'`, {
locale: pt,
})}
</p>
</Link>
</MeetList>
))
)}
</ul>
</Content>
</Container>
)
}