console.log()和array.reverse意外行为,reactjs

时间:2019-03-12 09:41:46

标签: javascript reactjs create-react-app console.log codesandbox

假定的重复问题仅(很难)回答该问题的第一部分,而不回答第二部分。它回答第一部分“很糟糕”,因为JSON.stringify仅适用于超级简单的示例。一旦示例变得更加复杂,就会带来另一个问题。例如“ TypeError:将圆形结构转换为JSON”。

console.log无法正常工作。注意React,CodeSandbox中的行为。 Link。我在执行项目时偶然发现了该错误,该错误不在CodeSandbox上,并且不使用create-react-app(如果重要)。

这不仅在React CodeSandbox中,而且在Vanila沙箱中,甚至在其他地方。

下面我写了两个可以正常工作的示例。

<!DOCTYPE html>
<html>

<body>
  <h1>My First Heading</h1>

  <p>My first paragraph.</p>
</body>
<script>
  const items = [1, 2];

  console.log(items); //okay. Expected=Actual=[1,2]
  console.log(items[0]); //okay. Expected=Actual=1
  items.reverse();
  console.log(items); //okay, Expected=Actual = [2,1]
  console.log(items[0]); // okay, Expected=Actual=2
</script>

</html>

Reactjs代码段:

const Why = () => {
const items = [1, 2];

  console.log(items); //okay. Expected=Actual [1,2]
  console.log(items[0]); //okay. Expected=Actual=1
  items.reverse();
  console.log(items); //okay, Expected=Actual = [2,1]
  console.log(items[0]); // okay, Expected=actual=2
  
return <div>{items}</div>;
};

ReactDOM.render(
  <Why />,
  document.getElementById("react")
);
<div id="react"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>

  1. 如何解决console.log()问题?
  2. 为什么行为在不同的环境中会有所不同?

0 个答案:

没有答案