gpt4 book ai didi

javascript - Reacts `propTypes` 和 `defaultProps` 应该和 Flowtype 一起使用,还是 Flowtype 够全面?

转载 作者:数据小太阳 更新时间:2023-10-29 04:34:36 34 4
gpt4 key购买 nike

想到一个简单的例子比如:

class CommentAreaComponent extends React.Component {
static propTypes = {
id: PropTypes.string.isRequired,
loading: PropTypes.bool,
};

static defaultProps = {
loading: false,
};

在构造函数中我可以定义这样的东西来实现(我认为)同样的事情:

class MyComponent extends React.Component {
constructor({
loading = false,
}:{
id:string,
loading?:boolean
}) {
super(arguments[0]);
}
}

第二个示例仅使用 Flowtype。使用 Reacts PropTypes 和 DefaultProps 有优势吗?或者我可以在使用 FlowType 时完全放弃它们吗?

最佳答案

您当然可以使用 Flow 类型而不是 React PropTypes,但是您建议的语法不是常用的方法。参见 Flow docs (向下滚动查看 ES6 语法):

class Button extends React.Component {
props: {
title: string,
visited: boolean,
onClick: () => void,
};

state: {
display: 'static' | 'hover' | 'active';
};

static defaultProps = {
visited: false,
};

constructor(props) {
super(props);
this.state = {
display: 'static',
};
}

render() {
let className = 'button ' + this.state.display;
if (this.props.visited) {
//...
}

return (/*...*/);
}
}

唯一不能用 Flow 类型做但可以用 PropTypes 做的事情是定义 custom validators (例如,检查 prop 是否是有效的电子邮件)。

我还有更多Flow React examples on github ,但我还没有用 Flow v0.22 测试它们,只有 v0.21。他们可能需要稍作调整。

关于javascript - Reacts `propTypes` 和 `defaultProps` 应该和 Flowtype 一起使用,还是 Flowtype 够全面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36783982/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com