PropTypes полезны для отладки, потому что они показывают предупреждение, когда ожидания не оправдываются. Кроме того, они также хорошо выражают намерение о том, как должен использоваться компонент.
Если у меня есть компонент, который принимает опору со значением, которое может быть обещанием, есть ли какой-то способЯ могу выразить это с помощью PropTypes? Я представляю что-то прямое, например PropTypes.promise
, или какой-то способ выразить концепцию «жизнеспособного» с использованием строительного блока PropTypes.
Вот очень упрощенный пример, демонстрирующий мой предполагаемый вариант использования:
class SomeComponent extends Component {
static propTypes = {
someDataPromise: PropTypes.object // <-- can I be more expressive here?
}
state = {
isLoading: false
}
async handleSubmit() {
this.setState({ isLoading: true });
const data = await this.props.someDataPromise;
const response = await fetch(`/some/api/endpoint?data=${data}`);
// do something with the response
this.setState({ isLoading: false });
}
render() { /* ... */ }
}