【发布时间】:2020-11-13 13:15:41
【问题描述】:
我正在使用带有 react 的 ant design 来生成一个可编辑的表格,里面有一个选择选项 我将使用钩子(figbird)获取选择选项,这将需要一些时间来获取,但选择将呈现其中没有选项。 我试图将数据(选项数组)置于这样的状态
const lines = useFind("lines");
let [lineNumber, setLineNumber] = useState();
const options = {
lines: [],
};
if (lines.error) return "Failed to load resource Machine Status";
if (lines.status === "loading") {
options.lines[0] = {};
setLineNumber[0] = { value: "loading" };
} else {
let arr = lines.data.map((line, i) => {
console.log(i, line);
options.lines[i] = {};
return { value: line.line_number };
});
setLineNumber = arr;
}
然后渲染我的表格并选择其中的组件
<Formik
initialValues={{ machine_name: "", password: "", remember: false }}
validationSchema={LoginSchema}
onSubmit={onSubmit}
>
{({ values, handleSubmit }) => (
<Form {...layout} onSubmit={handleSubmit}>
<Form.Item name="machine_name" label="Name">
<Input
name="machine_name"
placeholder="Machine Name"
prefix={<TagOutlined />}
value={values.machine_name}
/>
</Form.Item>
<Form.Item name="machine_line" label="Line">
<Select
prefix={<ClusterOutlined />}
name="machine_line"
style={{ width: "100%" }}
value={values.machine_line}
>
{lineNumber.map((line) => {
return (
<Option value={line.line_number}>
{line.line_number}
</Option>
);
})}
</Select>
</Form.Item>
<Form.Item name="url" label="URL">
<Input
name="url"
placeholder="URL"
prefix={<LinkOutlined />}
value={values.url}
/>
</Form.Item>
<Row>
<Col offset={6} span={4}>
<SubmitButton>Submit</SubmitButton>
</Col>
<Col offset={5} span={4}>
<ResetButton>Reset</ResetButton>
</Col>
</Row>
,
</Form>
)}
</Formik>
但 select 仍然没有在其中呈现任何内容...我检查了从 fetch 返回的数据,它没有出现错误,但状态似乎尚未设置
【问题讨论】:
-
尝试控制台记录
lineNumber -
它给了我未定义...如果我将 useState() 更改为 useState([]) 它给了我 [ ]