Verschönern Sie Eingabe-Tags in ReactJs mithilfe von CSS-Stilen
P粉619896145
P粉619896145 2023-09-01 17:00:09
0
1
654
<p>Ich habe die folgende Komponente in meiner React JS-Anwendung: </p> <pre class="brush:php;toolbar:false;">const Input = ({name, ..rest}) => zurückkehren ( <div> <input type="text" name={name} {...rest}/> {Fehler && <span>Fehler: Bitte fügen Sie Ihren Namen hinzu</span>} </div> ); };</pre> <p><code>rest</code>Die Parameter umfassen alle<code>React.InputHTMLAttributes<HTMLInputElement></code>, wie z. B. erforderlich, Klassenname, ID usw. </p><p>Ich habe Probleme beim Hinzufügen des Attributs <code>style</code> Wenn ich so etwas hinzufüge: </p> <p><code>margin-bottom: 45px</code></p> <p> Dann gibt es ein Leerzeichen zwischen dem Eingabefeld und der Spanne, aber dieses Leerzeichen sollte der Abstand der gesamten Komponente sein, sodass der Abstand unterhalb der Komponente und nicht zwischen den Elementen der Komponente angewendet werden sollte. </p> <p>Wie kann ich dieses Problem vermeiden und das Attribut <code>...rest</code> beibehalten? </p> <p>Hinweis: Zusätzlich zu <code>style</code> können Sie auch <code>className</code>, <code>id</code>, <code> verwenden Kontext ;erforderlich</code>etc. </p>
P粉619896145
P粉619896145

Antworte allen(1)
P粉511896716

您可以从rest中提取出style属性,然后删除其margin属性(之前设置的),并用您自定义的marginBottom: 45覆盖它。

const Input = ({ name, style, ...rest }) => {
  const { margin, ...restStyles } = style;
  const newStyles = {
    ...restStyles,
    marginBottom: 45,
  };

  return (
      <div>
        <input type="text" name={name} {...rest} style={newStyles} />
                                               // ^^^^^^^^^ 应用新样式
        {errors && <span>错误:请添加您的姓名</span>}
      </div>
  );
};
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage