reactjs 如何根据`formData`在挂载时正确预选相关的rjsf `anyOf`< Form>项?

bjg7j2ky  于 2023-04-20  发布在  React
关注(0)|答案(1)|浏览(112)

我正在使用将formData保存到服务器的rjsf表单。用户可以重新打开任何表单,它应该重新填充以前保存的formData。但是,在重新填充Form时,我无法选择正确的oneOf/anyOf选项。
例如,对于以下代码,我希望在Form挂载时预先选择secondanyOf选项:

import Form from "@rjsf/core";

function Test() {
  return <Form formData={formData} schema={schema as any} />;
}

export default Test;

const formData = {
  item: "second",
  secondProp: "abc"
};

const schema = {
  $id: "xxx",
  type: "object",

  anyOf: [
    {
      type: "object",
      title: "first",
      properties: {
        item: { type: "string", enum: ["first"], default: ["first"] },
        firstProp: { type: "string" }
      }
    },

    {
      type: "object",
      title: "second",
      properties: {
        item: { type: "string", enum: ["second"], default: ["second"] },
        secondProp: { type: "string" }
      }
    }
  ]
};

Codesandbox demo here

我不知道为什么,但是**上面提到的代码实际上在我们的项目中工作了很长一段时间,即使我无法在其他任何地方复制这种行为!**不幸的是,它最近在那里收支平衡,现在我们被淘汰了。
所以我有两个问题:
1.什么原因会导致这种模式在我们的项目中有效,而在其他地方却无效?
1.是否有任何工作方法来预先选择正确的项目?

相关问题