【发布时间】:2020-07-30 13:38:00
【问题描述】:
我是react js 的新手。在这里,我有以下没有被调用的组件。
export const BG: React.FunctionComponent<Icard> = ({
const state = useLocalStore(() => ({
id = url
setId(url) {
state.id = url
}
}))
const changeImage = () =? {
}
React.useEffect(() => {
state.setId(id)
}, [id])
const bgWrapper = (
<div
className={classNames({
[css.ImageContainer]: true,
[css.defaultImage]: !state.imageURI
})}>
{isUploadMode ? (
<upload
imageUrl={state.imageURI}
changeImage={changeImage}
) : (
<BImage
image={defaulImage}
/>
)}
</div>
)
return useObserver(() => (
<div className={css.BgCard}>
{isUploadMode ? (
bgWrapper
) : (
<p>Hello</p>
)}
</div>
))
})
现在这里 useEffect 没有被调用。现在,如果我在不创建 jsx 变量的情况下使用它。并直接使用该div然后它就可以工作了。任何人都可以帮助我为什么没有调用 useEffect 。
【问题讨论】:
-
id定义在哪里? -
在组件挂载时保证至少调用一次效果。你是说它根本没有被调用过吗?还是没有按预期触发?你能清理你的代码格式吗?它非常难以阅读。
-
您预计会发生什么?
id是什么?你没有在任何地方定义它。 -
它被调用但不是在改变 id 时
-
他正在使用 Mobx 的钩子,useLocalStore 在
state中创建id。我认为 OP 不应该接触 Mobx,直到他对基本的 react hooks 更加熟悉。见suggestion。
标签: javascript reactjs react-hooks