如何为所有无限滚动渲染项添加样式?

How to add styles to all infinite scroll rendering items?

我正在使用无限滚动,样式仅应用于已呈现的数组项,而不是新呈现的数组项...我如何将其应用于所有未来呈现的数组项?我正在以数组的形式获取数据。我首先迭代数组项并向已呈现的项添加背景颜色和文本颜色,但随着无限滚动的工作,它呈现了另一组数组元素,所以我如何在所有组件上应用这种背景颜色和文本颜色?

const toggleModefunc = (props) => {
    if (Mymode === "light") {
        setMymode("dark")
        document.body.style.backgroundColor = "#042743";
          const elements = document.querySelectorAll(".card-body")
           elements.forEach(elems => {
             elems.style.backgroundColor = "#042743";
             elems.style.color = "#fff"
         });
    }

    else {
        setMymode("light")
        document.body.style.backgroundColor = "white";
         const elements2 = document.querySelectorAll(".card-body")
           elements2.forEach(elems => {
             elems.style.backgroundColor = "#fff";
             elems.style.color = "black"
         });
    }
}

//地图函数

{this.state.articles.map((element) => {
            return (
              <div className="col-md-4" key={element.url}>
                <Newsitem
                  title={element.title ? element.title : ""}
                  description={
                    element.description ? element.description : ""
                  }
                  imageurl={element.urlToImage}
                  newsUrl={element.url}
                  author={element.author}
                  date={element.publishedAt}
                  source={element.source.name}
                />
              </div>

从技术上讲,你可以在 React 中做这样的事情

假设 NewsItem 是 .card-body,而 isDark 可以代表您所在的州。我假设您的状态默认设置为 light 主题。

状态将根据您的按钮点击而改变,这将改变数组中项目的颜色。

{
  this.state.articles.map((element) => (
    <div className="col-md-4" key={element.url}>
      <Newsitem
        className={`card-body ${isDark ? : 'dark-class' : 'fff'`}} // maybe you can add a custom css class for dark theme
    
        title={element.title ? element.title : ""}
        description={element.description ? element.description : ""}
        imageurl={element.urlToImage}
        newsUrl={element.url}
        author={element.author}
        date={element.publishedAt}
        source={element.source.name}
      />
    </div>
  ));
}