
yusukeM
上のソースコードを確認してみたのですがBasicSelectコンポーネントがどこにもインポートされていないためエラーを確認することができませんでした。 エラーが確認できるようなコードと説明をもう一度記載して欲しいです。 また、古いmaterial-uiと新しいmaterial-uiのライブラリが混在しているのでそれも修正してほしいです。
ReactでMaterial-UI を使用して、Web フォームを作成しています。 material-ui selectコードをcontent.jsファイルの case0のradioボタンのソースコードの下に導入して、 生年月日を選択できるようにしたいです。
何度かmaterial-ui selectコードをcontent.jsファイルの case0のradioボタンのソースコードの下に導入を試みたのですが、 波線の表示が出て、それを解消できず、期待する動作をしない状況で、詰まっています。 何方かアドバイスをお願いします。
期待する動作 material-ui selectコードをcontent.js case0のradioボタンのソースコードの下に導入して、 生年月日を選択できるようにしたい。
現在の状況 material-uiラジオボタンのソースコードを入力した後、material-ui selectコードを入力したら 波線が出てエラー表示になる状況。
//case0 のradioボタンのソースコードの下に入れたいmaterial-ui selectコード
import * as React from 'react';
import Box from '@mui/material/Box';
import InputLabel from '@mui/material/InputLabel';
import MenuItem from '@mui/material/MenuItem';
import FormControl from '@mui/material/FormControl';
import Select from '@mui/material/Select';
export default function BasicSelect() {
const [age, setAge] = React.useState('');
const handleChange = (event) => {
setAge(event.target.value);
};
return (
<Box sx={{ minWidth: 120 }}>
<FormControl fullWidth>
<InputLabel id="demo-simple-select-label">Age</InputLabel>
<Select
labelId="demo-simple-select-label"
id="demo-simple-select"
value={age}
label="Age"
onChange={handleChange}
>
<MenuItem value={10}>Ten</MenuItem>
<MenuItem value={20}>Twenty</MenuItem>
<MenuItem value={30}>Thirty</MenuItem>
</Select>
</FormControl>
</Box>
);
}
//content.js
import React from "react";
import { Grid } from "@material-ui/core";
import Stepper from "@material-ui/core/Stepper";
import Step from "@material-ui/core/Step";
import StepLabel from "@material-ui/core/StepLabel";
import Button from "@material-ui/core/Button";
import Typography from "@material-ui/core/Typography";
import Radio from "@mui/material/Radio";
import RadioGroup from "@mui/material/RadioGroup";
import FormControlLabel from "@mui/material/FormControlLabel";
import FormControl from "@mui/material/FormControl";
import FormLabel from "@mui/material/FormLabel";
import Tooltip from "@mui/material/Tooltip";
import TextField from "@mui/material/TextField";
function getSteps() {
return ["お客様の情報を入力してください", "以下にお答えください", "ご相談ください"];
}
function getStepContent(stepIndex) {
switch (stepIndex) {
case 0:
return (
<FormControl component="fieldset">
<FormLabel component="legend">- 性別 -</FormLabel>
<RadioGroup row aria-label="gender" name="row-radio-buttons-group">
<FormControlLabel value="male" control={<Radio />} label="男性" />
<FormControlLabel value="female" control={<Radio />} label="女性" />
</RadioGroup>
</FormControl>
);
case 1:
return "フォーム 2 のコンテンツを表示";
case 2:
return (
<Grid container>
<Grid sm={2} />
<Grid lg={8} sm={8} spacing={10}>
<Tooltip title="ご相談内容を記入することができます" placement="top-start" arrow>
<TextField
label="ご相談内容"
fullWidth
margin="normal"
rows={4}
multiline
variant="outlined"
placeholder="その他ご要望等あれば、ご記入ください"
/>
</Tooltip>
</Grid>
</Grid>
);
default:
return "Unknown stepIndex";
}
}
function Content() {
const [activeStep, setActiveStep] = React.useState(0);
const steps = getSteps();
const handleNext = () => {
setActiveStep((prevActiveStep) => prevActiveStep + 1);
};
const handleBack = () => {
setActiveStep((prevActiveStep) => prevActiveStep - 1);
};
const handleReset = () => {
setActiveStep(0);
};
return (
<Grid container>
<Grid sm={2} />
<Grid lg={8} sm={8} spacing={10}>
<Stepper activeStep={activeStep} alternativeLabel>
{steps.map((label) => (
<Step key={label}>
<StepLabel>{label}</StepLabel>
</Step>
))}
</Stepper>
{activeStep === steps.length ? (
<div>
<Typography>全ステップの表示を完了</Typography>
<Button onClick={handleReset}>リセット</Button>
</div>
) : (
<div>
<Typography>{getStepContent(activeStep)}</Typography>
<Button disabled={activeStep === 0} onClick={handleBack}>
戻る
</Button>
<Button variant="contained" color="primary" onClick={handleNext}>
{activeStep === steps.length - 1 ? "送信" : "次へ"}
</Button>
</div>
)}
</Grid>
</Grid>
);
}
export default Content;
//App.js
import "./App.css";
import { Grid } from "@material-ui/core";
import Header from "./components/Header";
import Content from "./components/Content";
function App() {
return (
<Grid container direction="column">
<Header />
<div style={{ padding: 30 }}>
<Content />
</div>
</Grid>
);
}
export default App;
index.js
mport React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
ReactDOM.render(
<React.StrictMode>
<App />
</React.StrictMode>,
document.getElementById('root')
);
yusukeM
上のソースコードを確認してみたのですがBasicSelectコンポーネントがどこにもインポートされていないためエラーを確認することができませんでした。 エラーが確認できるようなコードと説明をもう一度記載して欲しいです。 また、古いmaterial-uiと新しいmaterial-uiのライブラリが混在しているのでそれも修正してほしいです。
未経験からフロントエンジニアへの転職を目指し、プログラミングを勉強中。 2023年より受託開発企業にて働く。