【发布时间】:2019-08-17 11:40:15
【问题描述】:
条件渲染按钮不起作用
我尝试更改按钮的状态并添加另一个组件,但没有任何工作
/// This is the button component
const AddToList: React.FC<IAddToListProps> = (props) => {
let [showBtn, setShowBtn] = useState(true);
const classes = useStyles(props);
let addToList = () => {
fetch(`http://127.0.0.1:3000/${props.action}/${props.id}`, {method:
'post'})
.then((response) => {
console.log(response);
});
}
return (
<div>
{
showBtn ?
<Button
onClick={addToList}
variant="contained"
color="primary"
className={classes.button}>
{props.label}
</Button>
: null
}
</div>
);
//This is the movieCard component
export default function MovieCard() {
const [movieTitle, setMovieTitle] = useState('lorem ipsum');
const [year, setYear] = useState('1999');
const classes = useStyles();
return (
<Card className={classes.card}>
<CardActionArea>
<CardMedia
className={classes.media}
image='#'
title="anotherTitle"
/>
<CardContent>
<Typography gutterBottom variant="h5" component="h2">
{movieTitle}
</Typography>
<Typography variant="body2" color="textSecondary" component="p">
{year}
</Typography>
<AddToList
id={10}
label={'Add To Watch'}
action={'towatch'}
/>
<AddToList
id={10}
label={'Add To Seen'}
action={'watched'} />
</CardContent>
</CardActionArea>
<CardActions>
</CardActions>
</Card>
);
预期结果: 当我点击“Add to Watch”按钮时,“Add to Seen”必须被移除,“Add to Watch”必须转化为“Remove from watch list”
【问题讨论】:
-
欢迎来到 Stackoverflow,@Christian。是否有任何错误信息?不工作是什么意思?你会粘贴格式正确的代码吗?代码似乎无法在 prettier.io/playground 上格式化,因此人们无法确定是格式错误还是语法错误阻止了它工作。