[英]Multiple React effect hooks for the same dependency
假设我有一个带有Person
依赖项的效果挂钩,它遵循架构Person: {name: string, age: number}
。 我对这个Person
依赖项的效果钩子目前看起来像这样:
useEffect(() => {
if (person.name === 'Mike') {
doSomething()
}
if (person.age > 21) {
somethingElse()
}
}, [person])
将此逻辑分成具有相同依赖项的自己的效果挂钩是否是有效的代码:
// effect that handles any logic for a person's name
useEffect(() => {
if (person.name === 'Mike') {
doSomething()
}
}, [person])
// effect that handles any logic for a person's age
useEffect(() => {
if (person.age > 21) {
somethingElse()
}
}, [person])
我试图在我的某些组件中将不相关的代码彼此分开,我想知道这是否会被视为反模式,或者是否会导致不必要的问题?
你是对的。 虽然,我会分别检查每个单独效果调用的人员属性。 检查这里的反应文档以获得一个很好的例子。 (我真的不喜欢别人在回答而我还在打字......)
// effect that handles any logic for a person's name
useEffect(() => {
if (person.name === 'Mike') {
doSomething()
}
}, [person.name])
// effect that handles any logic for a person's age
useEffect(() => {
if (person.age > 21) {
somethingElse()
}
}, [person.age])
虽然以这种方式编写代码是可以接受的,但您可能希望对它们实际关心的内容运行效果。 IE
// effect that handles any logic for a person's name
useEffect(() => {
if (person.name === 'Mike') {
doSomething()
}
}, [person.name])
// effect that handles any logic for a person's age
useEffect(() => {
if (person.age > 21) {
somethingElse()
}
}, [person.age])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.