やりたいこと
- このようなテキストボックスに文字をいれて、Enterキーを押したときに
DEPLOY
ボタンをクリックしたときと同じ動作になるようにしたい -
DEPLOY
ボタンが押された際には、handleClickStart
が呼ばれる
コード
- formに
onSubmit
を指定して、サブミットが走った時の動作をhandleSubmit
で指定する-
handleSubmit
が呼ばれた時に、handleClickStart
を呼ぶようにする -
event.preventDefault();
はsubmit処理の規定の動作を防ぐもので、これがない場合、画面描画などの一般的な処理がこのタイミングで走る -
handleClickStart(values)
のように指定できるのは(引数としてvalues与をえなくていい)、valuesはグローバル変数というかこの関数内で使える変数になっているから
-
-
onClick
を指定すると、2重で呼ばれることになる- それは、明示的に指定しているonClickの動作とsubmitの動作での2回分
const handleSubmit = (event) => {
handleClickStart(values)
event.preventDefault();
};
return (
<React.Fragment>
<Title>Today</Title>
<form className={classes.root} noValidate autoComplete="off" onSubmit={handleSubmit}>
<TextField
id="standard-basic"
label="Standard"
onChange={handleChange}
value={values}
/>
<ResponsiveContainer>
<Button
type="submit"
variant="contained"
color="primary"
// onClick={() => {
// handleClickStart(values);
// }}
>
Deploy
</Button>
</ResponsiveContainer>
</form>
</React.Fragment >
);
参考