-1

当我尝试执行此代码时,Codesanbox.io 中出现“引发了跨域错误”错误。请问我该怎么做才能过去?我将 Create-react-app 与 codesanbox.io 一起使用

import React from "react";
import ReactDOM from "react-dom";
import "./styles.css";

class App extends React.Component {
  state = {
    customer: [
      { id: 1, name: "Leon" },
      { id: 1, name: "Lea" },
      { id: 1, name: "Vanelle" }
    ]
  };
  render() {
    const title = "Customer list";
    const elements = this.state.customer.map();
    return (
      <div className="App">
        <h1>{title}</h1>
        <ul>
          <li>
            Philippe <button>X</button>
          </li>
        </ul>
        <form>
          <input type="text" placeholder="Add a customer" />
          <button>Confirm</button>
        </form>
      </div>
    );
  }
}

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
4

2 回答 2

1

你的render函数应该map通过每一个customer找到的状态。只是调用this.state.customer.map()会引发一个错误,它似乎没有被codesandbox.

试试这个为你的渲染:

render() {
    const title = "Customer list";
    return (
      <div className="App">
        <h1>{title}</h1>

        <ul>
        {
          this.state.customer.map(c => (
            <li key={c.id}>
             {c.name} <button>X</button>
            </li>
          ))
        }
        </ul>
        <form>
          <input type="text" placeholder="Add a customer" />
          <button>Confirm</button>
        </form>
      </div>
    );
  }
于 2019-12-08T19:40:50.157 回答
0

可能是codeandbox的错吗?你读到这里了吗:https ://github.com/codesandbox/codesandbox-client/issues/667

通常,跨域错误是您可以在后端而不是前端(浏览器)中控制的。我怀疑您在代码中调用了一些您不应该有权在浏览器中调用的 API。CORS 是一个值得阅读的完整主题。要真正理解,我认为你应该花一些时间来消化它。

于 2019-12-08T18:50:32.060 回答