从ResultsTable按钮单击我收到handleClick函数所需的值,但是setState没有设置gameId并且仍然是"",我在哪里错了?如果我控制日志gameId它是我想要的。谢谢你的帮助。
class ResultsTableContainer extends Component {
constructor(props) {
super(props);
this.state = {
tableConfig,
games: [],
gameId: ""
};
}
handleClick = event => {
event.preventDefault();
const gameId = event.target.id;
this.setState({ gameId });
console.log(this.state);
};
currentContent = () => {
if (this.state.gameId !== "") {
return <GameDetailsContainer gameId={this.state.gameId} />;
}
return (
<ResultsTable
tableConfig={this.state.tableConfig}
games={this.state.games}
onButtonClick={this.handleClick}
/>
);
};
render() {
return <div>{this.currentContent()}</div>;
}
}
export default ResultsTableContainer;
ResultsTable.jsx
const ResultsTable = ({ games, tableConfig, onButtonClick }) => (
<Table>
...
<TableBody>
{games.map((game, index) => (
...
<button>
<Link
to={`/games/${game.id}`}
onClick={onButtonClick}
id={game.id}
>
Results
</Link>
</button>
</TableBody>
</Table>
);
export default ResultsTable;
答案 0 :(得分:0)
请不要在setState之后调用console.log(state)juste。 我认为一切正常。
答案 1 :(得分:0)
请勿在setState
之后立即呼叫控制台handleClick = event => {
event.preventDefault();
const gameId = event.target.id;
this.setState({ gameId });
}