尝试使用 TransitionGroup、来自 react-transition-group 的 CSSTransition 时出错 'Element type is invalid …'
Error 'Element type is invalid …' when trying to use TransitionGroup, CSSTransition from react-transition-group
抱歉,如果这听起来像是一个重复的问题。我正在尝试学习如何在 typescript 中使用 react-transtion-group,但是出现了错误。这是我的代码:
import React, { useState } from 'react';
import './App.css';
import {
TransitionGroup,
CSSTransition
} from "react-transition-group";
const App = () => {
const [myState, updateMyState] = useState({ items: ['hello', 'world', 'click', 'me'] })
const handleAdd = () => {
let userInput: string | null = prompt('Please enter your name.', "")
const newItems = myState.items.concat(userInput!)
updateMyState({ items: newItems })
}
const handleRemove = (index: number) => {
let newItems = myState.items.slice();
newItems.splice(index, 1);
updateMyState({ items: newItems })
}
const items = myState.items.map((item, i) => (
<CSSTransition
key={i}
classNames="example"
timeout={{ enter: 500, exit: 300 }}
>
<div onClick={() => handleRemove(i)}>
{item}
</div>
</CSSTransition>
));
return (
<div className="App">
<button onClick={handleAdd}>Add Item</button>
<TransitionGroup>
{items}
</TransitionGroup>
</div>
);
}
export default App;
错误:元素类型无效:应为字符串(对于内置组件)或 class/function(对于复合组件)但得到:未定义。您可能忘记从定义组件的文件中导出组件,或者您可能混淆了默认导入和命名导入。
检查TransitionGroup
的渲染方法。
我也遵循了此处的迁移指南:https://github.com/reactjs/react-transition-group/blob/master/Migration.md,但它对我不起作用。
请帮忙,
谢谢。
在尝试了这么多东西后,我绞尽脑汁解决了这个问题,只需将 package.json
文件中的版本更新为 2.7.0
"react-transition-group": "2.7.0",
我想我的错误只是盲目地使用了他们 github 指南中的 yarn add react-transition-group@1.x
。
抱歉打扰了。
抱歉,如果这听起来像是一个重复的问题。我正在尝试学习如何在 typescript 中使用 react-transtion-group,但是出现了错误。这是我的代码:
import React, { useState } from 'react';
import './App.css';
import {
TransitionGroup,
CSSTransition
} from "react-transition-group";
const App = () => {
const [myState, updateMyState] = useState({ items: ['hello', 'world', 'click', 'me'] })
const handleAdd = () => {
let userInput: string | null = prompt('Please enter your name.', "")
const newItems = myState.items.concat(userInput!)
updateMyState({ items: newItems })
}
const handleRemove = (index: number) => {
let newItems = myState.items.slice();
newItems.splice(index, 1);
updateMyState({ items: newItems })
}
const items = myState.items.map((item, i) => (
<CSSTransition
key={i}
classNames="example"
timeout={{ enter: 500, exit: 300 }}
>
<div onClick={() => handleRemove(i)}>
{item}
</div>
</CSSTransition>
));
return (
<div className="App">
<button onClick={handleAdd}>Add Item</button>
<TransitionGroup>
{items}
</TransitionGroup>
</div>
);
}
export default App;
错误:元素类型无效:应为字符串(对于内置组件)或 class/function(对于复合组件)但得到:未定义。您可能忘记从定义组件的文件中导出组件,或者您可能混淆了默认导入和命名导入。
检查TransitionGroup
的渲染方法。
我也遵循了此处的迁移指南:https://github.com/reactjs/react-transition-group/blob/master/Migration.md,但它对我不起作用。
请帮忙,
谢谢。
在尝试了这么多东西后,我绞尽脑汁解决了这个问题,只需将 package.json
文件中的版本更新为 2.7.0
"react-transition-group": "2.7.0",
我想我的错误只是盲目地使用了他们 github 指南中的 yarn add react-transition-group@1.x
。
抱歉打扰了。