当我尝试执行此代码时,Codesanbox.io中出现“引发跨域错误”错误。 请问我该怎么办? 我正在使用带有codesanbox.io
的Create-react-appimport 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);
答案 0 :(得分: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>
);
}
答案 1 :(得分:0)
可能是codesandbox的错吗? 您是否在这里阅读过:https://github.com/codesandbox/codesandbox-client/issues/667
通常,跨域错误是可以在后端而不是前端(浏览器)中控制的。我怀疑您已在代码中调用了某些API,但您不应该在浏览器中调用该API。 CORS是一个完整的主题,需要阅读。要真正理解,我认为您应该花一些时间来消化它。