【发布时间】:2021-07-25 19:51:06
【问题描述】:
这里是新的 Reactjs(Hooks) 开发人员,我的问题是:我现在在 Menu.tsx 中,我想单击该按钮,它应该会影响“Transports.tsx”中的另一个组件,我已经编写了两种方法(不知道如何使它们工作),一种方法是普通按钮并单击它,另一种方法是将它们添加到 '' 中。如果我将该按钮放在同一个组件“Transports.tsx”中,它将毫无问题地工作,但需要在“Menu.tsx”中有该按钮。
import React from 'react'
function Menu() {
return (
<div>
<button
type="button"
className="btn btn-secondary"
data-bs-dismiss="modal"
onClick={() => filterData(OrderState.Delivered)}
>
delivered
</button>
{/* <Link to="/Transports">
<button
type="button"
className="btn btn-secondary"
data-bs-dismiss="modal"
onClick={() => filterData(OrderState.Delivered)}
> delivered</button>
</Link> */}
</div>
)
}
export default Menu
Transports.tsx
import React from 'react'
function Transports() {
function filterData(filter: any) {
setDefault(true);
if (filter) {
setData(ordrs?.filter((f) => f.state === filter));
} else {
setData(ordrs?.filter((f) => f.state !== "Delivered"));
}
}
return (
<div>
</div>
)
}
export default Transports
【问题讨论】:
-
这两个不是父子,我的意思是这些不在每个里面
-
那么您可能需要了解上下文。 (或redux)。 reactjs.org/docs/context.html#dynamic-context。另一种选择是在
<Link to={{pathname: "/second_page", state: {id: 123}}} />中传递一些状态值,然后根据状态值,您可以在useEffect 中触发。 stackoverflow.com/a/64008243/2650209 -
你可以使用 useContext 或 redux 。
-
你能举个例子吗?
标签: javascript html reactjs typescript function