Шутка издевается над функциональным компонентом - PullRequest
1 голос
/ 08 октября 2019

Я чувствую, что что-то упустил. Я пытаюсь смоделировать функциональный компонент, и он продолжает выдавать мне ошибку

Если я делаю

TestRenderer.create(
      <FunctionalComponent/>
)

Это выдает ошибку

Invariant Violation: FunctionalComponent(...): Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null.

Если я изменяюэто к компоненту на основе классов, он работает.

Как я могу издеваться над функциональным компонентом? спасибо!

редактировать:

Я пытался насмехаться над этим компонентом

const SampleComponent = () => {
  return <View/>
}

И он выдает ошибку,

Но этот

class SampleClassComponent extends Component {
  render() {
    return <View/>
  }
}

Не

Ошибка при работе

jests.mock('path/to/component')

1 Ответ

1 голос
/ 08 октября 2019

Вы должны вернуть что-то в свой функциональный компонент, даже если он нулевой. Функциональным компонентом является Link.

import React from 'react';
import TestRenderer from 'react-test-renderer';

function Link(props) {
  return null;
}

const testRenderer = TestRenderer.create(
  <Link/>
);

console.log(testRenderer.toJSON());

export default Link;

или

import React from 'react';
import TestRenderer from 'react-test-renderer';

function Link(props) {
  return <a href={props.page}>{props.children}</a>;
}

const testRenderer = TestRenderer.create(
  <Link/>
);

console.log(testRenderer.toJSON());

export default Link;

Ссылки:

...