如何使用useState更改React上const的状态?

时间:2020-08-31 14:04:00

标签: reactjs use-state

我正在做一个带有react的jokenpô游戏,我需要制作一个记分牌,该记分牌以玩家和计算机的状态为0开头,并且当其中一些赢得比赛时发生变化

>
 const handlePlacar = () =>{
    if(victory === 'You'){
      setPlacarPlayer(placarPlayer ++)
    }
    else if(victory === 'Computer'){
      setPlacarComputer(placarComputer ++)
    }
  }

在App.js中,我将此函数称为prop的道具

      <Divs>
       <Placar computer={placarComputer} player={placarPlayer} handlePlacar={handlePlacar}/>
      </Divs>

组件Placar代码

import React from 'react';
import {Table, TableHead, TableRow, TableCell, TableContainer, TableBody} from '@material-ui/core';

const Placar = (props) =>{


    return(
      
        <TableContainer>
        <Table>
          <TableHead>Placar</TableHead>
          <TableRow>
            <TableCell>Player</TableCell>
            <TableCell>Computer</TableCell>
          </TableRow>
          <TableBody>
            <TableRow>
              <TableCell>{props.player}</TableCell>
              <TableCell>{props.computer}</TableCell>
            </TableRow>
          </TableBody>
        </Table>
      </TableContainer>
    )
}

export default Placar

但是状态没有改变。我用useEffect尝试过,但是也没有用。

1 个答案:

答案 0 :(得分:0)

问题是状态的新值取决于先前的状态值。因此,您可以使用回调更新调用setPlacarComputer方法。

const [count, setCount] = useState(0);


setCount(previousCount => previousCount + 1);