Deaktivierte JS-Funktionen beeinträchtigen den normalen Betrieb von HTML/JS/Babel-Code
P粉448346289
2023-08-14 15:14:58
<p>Im folgenden Code habe ich erwartet (Konsole protokolliert), dass das Objekt <code>props</code> nur das Mitglied <code>className</code> enthielt, aber es enthielt das Mitglied: <p> ;code>{ Klassenname, ID, Ticket, Anfrage }</code>. Wenn ich jedoch den Parameter <code>...others</code> aus <strong>Unused Function</strong><code>NullComp</code> entferne, dann ist das Objekt <code>props< Das einzige Mitglied von ;/code> ist: <code>className</code>, was genau das ist, was ich ursprünglich erwartet hatte. </p>
<p>Sie können es selbst ausprobieren, indem Sie den folgenden Code ausführen: </p>
<p>Verwenden: <code>...andere</code>: </p>
<p><br /></p>
<pre class="brush:html;toolbar:false;"><!DOCTYPE html>
<html>
<Kopf>
<meta charset="UTF-8" />
<title>Test</title>
<script src="https://unpkg.com/react/umd/react.produktion.min.js"></script>
<script src="https://unpkg.com/react-dom/umd/react-dom.produktion.min.js"></script>
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
</head>
<Körper>
<div id="root"></div>
<script type="text/babel">
Funktion GoalComp({
AUSWEIS,
Fahrkarte,
Anfrage,
...Requisiten
}) {
console.log(props);
return <div>Independent Retriever</div>;
}
</script>
<script type="text/babel">
function NullComp({ timeRanges, ...others }) {
null zurückgeben;
}
</script>
<script type="text/babel">
const { useState, useEffect } = React;
const App = () => {
zurückkehren (
<GoalComp
className="mt-10"
id="1"
Ticket="IT-ABCD"
request="Frieden und Liebe"
/>
);
};
ReactDOM.render(<App />, document.querySelector("#root"));
</script>
</body>
</html></pre>
<p><br /></p>
<p>不使用:<code>...others</code>:</p>
<p><br /></p>
<pre class="brush:html;toolbar:false;"><!DOCTYPE html>
<html>
<Kopf>
<meta charset="UTF-8" />
<title>Test</title>
<script src="https://unpkg.com/react/umd/react.produktion.min.js"></script>
<script src="https://unpkg.com/react-dom/umd/react-dom.produktion.min.js"></script>
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
</head>
<Körper>
<div id="root"></div>
<script type="text/babel">
Funktion GoalComp({
Ausweis,
Fahrkarte,
Anfrage,
...Requisiten
}) {
console.log(props);
return <div>Independent Retriever</div>;
}
</script>
<script type="text/babel">
Funktion NullComp({ timeRanges }) {
null zurückgeben;
}
</script>
<script type="text/babel">
const { useState, useEffect } = React;
const App = () => {
zurückkehren (
<GoalComp
className="mt-10"
id="1"
Ticket="IT-ABCD"
request="Frieden und Liebe"
/>
);
};
ReactDOM.render(<App />, document.querySelector("#root"));
</script>
</body>
</html></pre>
<p><br /></p>
<p>我在这里漏掉了什么?</p>
<p>谢谢!</p>
您观察到的行为实际上是预期的,并且不受
NullComp
函数中...others
的存在或缺失的影响。需要注意的关键是,在提供的代码中没有使用或调用NullComp
函数,因此它不会影响GoalComp
函数的输出。让我们来分析一下发生了什么:
在
GoalComp
函数中,您使用解构来提取props中的id
、ticket
和request
属性。其余的属性(如果有)使用扩展运算符...props
收集到props
对象中。当您在
App
组件中渲染GoalComp
组件时,您传递了以下props:className="mt-10"
id="1"
ticket="IT-ABCD"
request="Peace and Love"
在这种情况下,当这些props传递给
GoalComp
时,id
、ticket
和request
属性被提取出来,剩下的className
属性被收集到props
对象中。这就是为什么当您console.log(props)
时,您会看到一个只有一个属性的对象:{ className: "mt-10" }
。NullComp
函数中...others
的存在与否在这个上下文中是无关紧要的。由于没有使用NullComp
,它是否有...others
都不会影响GoalComp
函数的输出。总之,代码按预期工作。在任何情况下,
NullComp
函数都不会影响GoalComp
函数的输出。希望对您有所帮助!