私は、ステージング環境でこれをテストするときにのみ、次のエラーに遭遇します。ただし、コードをローカルで実行するとエラーなしで実行されます。反応不変のエラー
Uncaught Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in.
私はビューがエラーをトリガすることなく、ロードするために得ることができる2つの方法があります。
Iが明示的
spans
即ち<span data-filter="yourTasks">Your Tasks</span>
List
成分
import React from 'react';
import styled from 'styled-components';
import ListItem from '../components/ListItem';
const List = ({ handleFiltering, listItems, match }) => {
const handleClick = (e) => {
handleFiltering(e.target.dataset.filter);
}
return (
<ListWrapper>
<Tabs onClick={handleClick}>
<Tab data-filter="yourTasks">Your Tasks</Tab>
<Tab data-filter="allTasks">All Tasks</Tab>
<Tab data-filter="assignedTasks">Assigned</Tab>
</Tabs>
{ _.map(listItems, item => <ListItem key={item._id} item={item} />)}
</ListWrapper>
);
}
const ListWrapper = styled.section`
flex: 1;
`;
const Tabs = styled.div`
display: flex;
margin-bottom: 10px;
`;
const Tab = styled.span`
background-color: #F6F6F6;
`;
export default List;
として個々
<Tab />
コンポーネントを定義する場合、私は
<Tabs />
スタイル成分
にonClick={handleClick}
小道具を削除親から
私は運と"master" invariant SO postを介して実行でした
...
handleFiltering(filterType, list) {
list = list || this.state.list;
const filterTypes = {
allTasks:() => list,
yourTasks:() => (list.filter(item => item.assignedTo === this.userId)),
assignedTasks:() => (list.filter(item => item.createdBy === this.userId)),
}
this.setState(() => {
return { filteredList: filterTypes[filterType]() }
});
}
...
handleFiltering
が定義されているListContainer
コンポーネント。
キャッチされた例外を一時停止して、スタックトレースを掘り下げて、どの要素が未定義であるかを正確に確認できるかどうかを確認してください。 ステージング環境でのみ問題が発生する場合は、問題が発生する可能性があります。 https://developers.google.com/web/updates/2015/05/automatically-pause-on-any-exception –
スタイル付きのコンポーネント宣言を、参照されているコンポーネントの上に移動してみてください。 –
@jadamこれは、インポートに問題がある場合に発生します。このQAを確認してください: https://stackoverflow.com/questions/34130539/uncaught-error-invariant-violation-element-type-is-invalid-expected-a-string?noredirect=1&lq=1 –