typescript - TypeError: React.createContext nie je funkcia s ApolloContext a Jest
Snažím sa otestovať niekoľko kódov v TypeScripte pomocou Jest pre moju aplikáciu TS+NextJS, kde používam Apollo+GraphQL. Bohužiaľ, dostávam chybu
TypeError: React.createContext is not a function
Z nasledujúceho uzlového modulu:
getApolloContext (node_modules/@apollo/client/react/context/ApolloContext.js:7:25)Keď som sa pozrel na túto chybu pri iných otázkach na Stack Overflow, hovorí sa, že verzia Reactu je zastaraná, ale moja verzia Reactu v mojom súbore package.json je
"react": "^17.0.1",Takže si nie som istý, čo by mohlo spôsobovať tento problém. Zdá sa, že z nejakého dôvodu buď zlyháva kontrola typu, alebo sa v tom node module používa stará verzia React namiesto projektu celej verzie, čo sa nezdá byť správne.
Čo som zatiaľ vyskúšal, je:
Aktualizujem svoje moduly node react a react-dom (nerobí to nič)
Celkom uviazol v tom, čo robiť okrem toho.
kód je tu:
test.tsximport * as React from 'react';
import { render } from '@testing-library/react'
import DonePage from '../pages/done'
describe('Pages', () => {
describe('Index', () => {
it('Pages render', function testCases() {
render(<DonePage apolloClient={{}} apolloState={{}}/>)
})
})
})
export {}
page.tsximport * as React from 'react';
import { withApollo } from 'apollo'
{...}
const DonePage: NextPage<{}> = () => {
return (
<>
{...}
</>
)
}
export default withApollo(DonePage, { ssr: false })
Kde withApollo je kód na https://github.com/apollographql/apollo-client/issues/5089
Spúšťam testy s jest --runInBand