Reactjs React js想要在React中循环选择多个页面而不是每个页面

Reactjs React js想要在React中循环选择多个页面而不是每个页面,reactjs,formik,Reactjs,Formik,目前,我已经创建了一个select下拉列表,它使用concat调用第1页和第2页的所有已创建功能,我希望使此过程成为动态的,以便不必键入每个页面来引用select下拉列表,而是包括一个循环过程将使此函数成为动态的。有人能告诉我如何实施这一点吗 每页的默认页面项目数为20 const GeneralInputFormBlock = ({ formik, isEdit }) => { const classes = useStyle(); const { touched, errors }

目前,我已经创建了一个select下拉列表,它使用concat调用第1页和第2页的所有已创建功能,我希望使此过程成为动态的,以便不必键入每个页面来引用select下拉列表,而是包括一个循环过程将使此函数成为动态的。有人能告诉我如何实施这一点吗

每页的默认页面项目数为20

const GeneralInputFormBlock = ({ formik, isEdit }) => {
 const classes = useStyle();
 const { touched, errors } = formik;
 const [features, setFeatures] = useState([]);

const loadFeature = async () => {
 let page1 = await search({
  _entity: 'Feature',
  featureCode: 'FTR',
  _select: 'featureCode,id',
  _page: 1,
});

let page2 = await search({
  _entity: 'Feature',
  _select: 'featureCode,id',
  featureCode: 'FTR',
  _page: 2,
});

const allRules = page1.data.concat(page2.data);
setFeatures(allRules);
};

return (
<GridItem xs={8}>
        <FormControl className={classes.formControl}>
          <InputLabel>Feature Ids*</InputLabel>
          <Select
            multiple
            input={<Input id="select-feature-ids" />}
            renderValue={selected => (
              <div className={classes.chips}>
                {selected.map(value => (
                  <Chip
                    key={value}
                    label={
                      features.length &&
                      features.filter(f => f.id === value)[0].featureCode
                    }
                    className={classes.chip}
                  />
                ))}
              </div>
            )}
            {...formik.getFieldProps('featureIds')}
          >
            {features.map(({ featureCode, id }) => (
              <MenuItem key={featureCode} value={id}>
                {featureCode}
              </MenuItem>
            ))}
          </Select>

          {errors.featureIds && touched.featureIds && (
            <Error msg={errors.featureIds} />
          )}
        </FormControl>
      </GridItem>
    </GridContainer>
  </GridItem>
</Card>
);
};
const GeneralInputFormBlock=({formik,isEdit})=>{
const classes=useStyle();
常数{toucted,errors}=formik;
const[features,setFeatures]=useState([]);
const loadFeature=async()=>{
让page1=等待搜索({
_实体:“特征”,
功能代码:“FTR”,
_选择:“功能代码,id”,
_页码:1,
});
让page2=等待搜索({
_实体:“特征”,
_选择:“功能代码,id”,
功能代码:“FTR”,
_页码:2,
});
const allRules=page1.data.concat(page2.data);
设置功能(所有规则);
};
返回(
特征ID*
(
{selected.map(值=>(
f、 id==值[0]。功能代码
}
className={classes.chip}
/>
))}
)}
{…formik.getFieldProps('FeatureId')}
>
{features.map({featureCode,id})=>(
{featureCode}
))}
{errors.featureId&&toucted.featureId&&(
)}
);
};

您可以使用for循环还是while循环?您需要确定如何知道何时完成抓取,以确定哪个选项更适合

for(设i=1;i
let page=[];
设计数器=1;
while(第页){
page=等待搜索({
_实体:“特征”,
功能代码:“FTR”,
_选择:“功能代码,id”,
_页码:计数器,
});
setFeatures(features.concat(第页));
计数器++;
}

是否存在静态页数或某种类型的“数据结束”指示器?否,目前我仅为2页创建了功能内容。使用while循环获取“解析错误:不能在异步函数外使用关键字'wait'”将循环放入异步
加载功能
函数内,而不是2个单独的等待