小编Gim*_*ian的帖子

类型错误:从 react-router 使用 useParams 时,无法读取未定义的属性“匹配”

我不明白为什么它会给我上述错误。我在 props.match.params.languagename 中使用了 props 方式,它工作得很好。

我没有在下面的代码中包含所有导入。


import { useParams } from 'react-router';

const App = () => {
  const topicsState = useSelector(state => state.topics);

  const dispatch = useDispatch();
  const { languagename } = useParams();

  useEffect(() => {
    dispatch(fetchGitHubTrendingTopics());
  }, [dispatch]);

  const handleRepositoryPages = () => {
    const repositoryPages = topicsState.find(
      topicState => topicState.name === languagename
    );
    if (repositoryPages)
      return <RepositoryPage repositoryPages={repositoryPages} />;
  };
  return (
    <>
      <Router>
        <Header topics={topicsState} />
        <Switch>
          <Route path="/" exact>
            <Dashboard topics={topicsState} />
          </Route>
          <Route
            path="/language/:languagename" …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-router

11
推荐指数
2
解决办法
1万
查看次数

Redux - 尝试添加一个函数来 configureStore

我正在尝试将我的 redux 持久化到 localStorage,但我不知道如何将它添加到 redux-toolkit 的 configureStore 函数中。

错误:

'{ reducer: { progress: Reducer; } 类型的参数 }; 持久状态:任何;}' 不能分配给 'ConfigureStoreOptions<{ progress: number; 类型的参数。}, AnyAction>'。对象字面量只能指定已知属性,并且类型 'ConfigureStoreOptions<{ progress: number; 中不存在 'persistedState'。}, AnyAction>'。

代码:

localStorage.ts

export const loadState = () => {
  try {
    const serializedState = localStorage.getItem("state");
    if (serializedState === null) {
      return undefined;
    }
    return JSON.parse(serializedState);
  } catch (err) {
    return undefined;
  }
};
Run Code Online (Sandbox Code Playgroud)

索引.tsx

import React from "react";
import ReactDOM from "react-dom";
import App from "./App";
import counterSlice from "./store/reducers/counterSlice"; …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs redux

8
推荐指数
1
解决办法
1431
查看次数

Material-UI 自动完成和 TextField 触发谷歌自动完成

我正在尝试在我的项目中实现自动完成组件,但一段时间后我从浏览器获取自动填充/自动完成。你知道我怎么能把它关掉吗?

                        <Autocomplete

                            id="combo-box-demo"
                            options={battleRepos}
                            getOptionLabel={option => option.full_name}
                            style={{ width: 500 }}
                            renderInput={params => (
                                <TextField {...params} 
                                    label="Combo box"  
                                    variant="outlined"
                                    onBlur={event => console.log(event.target.value)}

                                    fullWidth  />
                            )}
                        />
Run Code Online (Sandbox Code Playgroud)

有问题的图片

javascript reactjs material-ui

7
推荐指数
1
解决办法
4252
查看次数

当我尝试测试 react-bootstrap 组件时,出现 TypeError: Enzyme::Selector 需要字符串、对象或组件构造函数

我正进入(状态

TypeError: Enzyme::Selector 在我尝试测试组件时需要字符串、对象或组件构造函数

我尝试使用ReactWrapper,使用 div 的类并创建一个 id。没有任何效果。

import React from "react";
import Dashboard from "../Containers/Dashboard/Dashboard";
import { BrowserRouter as Router } from 'react-router-dom'
import { configure, shallow, mount } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
import Container from 'react-bootstrap';
let container = null;
configure({adapter: new Adapter()});

describe('<Dashboard />', () => {
  let wrapper;

  beforeEach(() => {
    const fakeTopic = [
      {
        "name": "javascript",
        "display_name": "JavaScript",
        "short_description": "JavaScript (JS) is a lightweight interpreted programming language with first-class functions.", …
Run Code Online (Sandbox Code Playgroud)

reactjs jestjs react-bootstrap enzyme

5
推荐指数
1
解决办法
2789
查看次数