javascript “样式化组件”的问题:错误:无效的挂接调用

lstz6jyr  于 2023-02-11  发布在  Java
关注(0)|答案(3)|浏览(102)

我正在完成一个教程,他们正在使用一个styled-component。样式是在渲染后的js文件中分配的,我得到了无效的钩子调用。这是我的第一个react教程,所以我很难只是谷歌的答案。下面是我正在运行的代码。错误只弹出当我调用<MovieGrid>。任何帮助将不胜感激

/* eslint react/no-did-mount-set-state: 0 */
import React, { Component } from 'react';
import styled from 'styled-components';
import Movie from './Movie';

class MoviesList extends Component {
  state = {
    movies: [],
  }

  async componentDidMount() {
    try {
      const res = await fetch('url');
      const movies = await res.json();
      this.setState({
        movies: movies.results,
      });
    } catch (e) {
      console.log(e);
    }
  }

  render() {
    return (
      <MovieGrid>
        {this.state.movies.map(movie => <Movie key={movie.id} movie={movie} />)}
      </MovieGrid>
    );
  }
}

export default MoviesList;

const MovieGrid = styled.div`
  display: grid;
  padding: 1rem;
  grid-template-columns: repeat(6, 1fr);
  grid-row-gap: 1rem;
`;
5jdjgkvh

5jdjgkvh1#

您是否将此包作为第三方包编写?以供其他包使用。
如果是,则
请浏览这些链接。
https://styled-components.com/docs/faqs#how-can-i-fix-issues-when-using-npm-link-or-yarn-link
https://styled-components.com/docs/faqs#i-am-a-library-author-should-i-bundle-styledcomponents-with-my-library
https://webpack.js.org/guides/author-libraries/
https://robkendal.co.uk/blog/2019-12-22-solving-react-hooks-invalid-hook-call-warning/
有助于理解所有的图片
在我的例子中,问题在于冗余的React和Styled组件
因此,i npm将react和styled-component从by widget库链接到消费者包。
考虑到和位于同一文件夹中,然后从添加链接到React和设置样式的构件

npm link ../<consmer-package>/node_modules/react

npm link ../<consmer-package>/node_modules/styled-components
omhiaaxx

omhiaaxx2#

如果有人正在使用带有样式化组件的Next.js v12,下面是对我有效的方法:
我在使用 styled-components v5.1.1Next.js v12 时遇到了“无效的钩子调用”。
解决方案是临时将样式化组件降级到v5.0.0,错误消失了!

sz81bmfz

sz81bmfz3#

所以这个问题最终出现在另一个文件中。我试图import Movie,但我不知道变量默认情况下不会导出,所以我最终在声明之前添加了导出,这解决了这个问题。

export const Poster = styled.img`
  box-shadow: 0 0 35px black;
`;

相关问题