我可以把一些东西放到react组件中并在useEffect中得到它吗?



我想传递一个变量到一个函数是在className属性(不是其他任何地方)

一旦读取了特定的jsx部分,该函数就会运行(在组件函数之后,在挂载之前)。

作为副作用,此函数返回className的字符串。

然后我希望相同的函数在所有组件安装后运行=useEffect(() => { //here },[]具有相同的变量

const run = (val: any) => val 
useEffect(() => {
const val = run() 
console.log(val); // return 'go'
}, [])
return (
<>
<button className={ run('go') }>
run
</button>
</>
)

您不了解什么是className角色以及如何使用它。你没有传递一个函数给className,而是一个CSS类名,它将定义元素的样式。

如果我理解正确的话,您希望run()函数在每次组件渲染时自动运行,并使用特定的输入'go'

你可以这样编辑useEffect钩子:

const run = (val: any) => val 
useEffect(() => {
const val = run('go') 
console.log(val); // return 'go'
}, [])
return (
<>
<button>
run
</button>
</>
)

另一个选项是,例如,通过按钮的onClick事件调用函数,像这样:

return (
<>
<button onClick={ run('go') }>
run
</button>
</>
)

这样,每次函数呈现时都会触发run函数。

您还必须删除useEffect钩子,因为它将在没有任何输入的情况下触发每个渲染上的函数,这不是您所要求的。

相关内容

  • 没有找到相关文章

最新更新