簡體   English   中英

使用來自 js 源映射的 React 組件

[英]Using React component from js source maps

長話短說,我正在嘗試學習 React 以在我的一個項目中使用。 我現在正在嘗試使用 react 組件( https://github.com/mozilla-services/react-jsonschema-form ),但我不明白如何將它與 CDN 版本一起使用。 所以有一個js文件,還有一個source map

該組件看起來非常易於使用:

const schema = {
  title: "Todo",
  type: "object",
  required: ["title"],
  properties: {
    title: {type: "string", title: "Title", default: "A new task"},
    done: {type: "boolean", title: "Done?", default: false}
  }
};

const formData = {
  title: "First task",
  done: true
};

const log = (type) => console.log.bind(console, type);

render((
  <Form schema={schema}
        formData={formData}
        onChange={log("changed")}
        onSubmit={log("submitted")}
        onError={log("errors")} />
), document.getElementById("app"));

如果我理解正確,使用 CDN 方法,我應該能夠只包含 js(以及 react/react-dom)並且它應該可以工作,對吧? 只有我收到錯誤:

embedded:18 Uncaught ReferenceError: Form is not defined

當我查看 js 文件時,我沒有看到指定的 Form 組件,而我在地圖中看到了它:

class Form extends Component

那么具體應該如何使用呢? 因為我覺得我在這里錯過了一些東西

Form 僅在導入和別名JSONSchemaForm模塊后的示例中可用,這就是它沒有出現在縮小版本中的原因。

import Form from "react-jsonschema-form";

但是,編譯后的 ES 模塊在 CDN 版本中作為JSONSchemaForm添加到全局命名空間中,您可以手動訪問其默認導出屬性。

const Form = JSONSchemaForm.default;

然后將其用作 React 組件。

ReactDOM.render((
  <Form schema={schema}
    formData={formData}
    onChange={log("changed")}
    onSubmit={log("submitted")}
    onError={log("errors")} />
  ),
  document.getElementById("app")
);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM