ratty-blush•3y ago
EditButton redirect
Clicking the edit button redirects me to scenarios/edit/:id, but I would like to also pass it a prop that the component at scenarios/edit/:id can access. Is this possible.
8 Replies
Hi @.chasel. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave:
----------------------
Yes, it is possible to pass additional parameters to the
edit method of useNavigation using the meta prop. By default, existing parameters in the route are used by the edit method. You can pass additional parameters or override the existing ones using the meta prop.
For example, if the edit action route is defined by the pattern: /scenarios/:authorId/edit/:id, the meta prop can be used as follows:
In this example, authorId is an additional parameter that is passed to the edit method. When you click the EditButton, the app will redirect to the edit action path of the resource, filling the necessary parameters in the route.
For more information, you can refer to the documentation (https://refine.dev/docs/api-reference/antd/components/buttons/edit-button).
----------------------
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
----------------------<@196423433930670080> kapa.ai is still learning and improving, please let us how it did by reacting below
ratty-blushOP•3y ago
@kapa.ai The edit button redirects me like an anchor tag. I don't want to affect the url it sends me to I just want to pass props to the element. For example when I click my EditButton I get redirected to my EditScenario element. I would like to access a props?.course_id element inside there.
Let me check the knowledge base for you. One moment! :books:
----------------------
The
EditButton in Refine doesn't directly support passing props to the component it redirects to. It primarily works with the routing system, and any data you want to pass around would typically be included in the URL as parameters.
However, you can use a state management solution to share data between components. For example, you could use React's Context API, Redux, or any other state management library to store the course_id when the EditButton is clicked, and then retrieve it in your EditScenario component.
Here's a basic example using React's Context API:
Please note that this is a simplified example and you might need to adjust it according to your application's structure and requirements.
----------------------
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
----------------------<@196423433930670080> kapa.ai is still learning and improving, please let us how it did by reacting below
ratty-blushOP•3y ago
@kapa.ai Inside of <Edit/> there is also a list button at the top that if clicked redirects me to my list element for that resource. Is it possible for me to use a different resource for this?
Let me check the knowledge base for you. One moment! :books:
----------------------
Yes, it is possible to customize the
ListButton inside the Edit component using the headerButtons property. This property accepts a React.ReactNode or a render function, which you can use to keep the existing buttons and add your own.
Here's an example of how you can replace the default ListButton with a custom one that uses a different resource:
In this example, the headerButtons property is used to render a custom ListButton that uses "anotherResource" instead of the default resource. The defaultButtons array is filtered to remove the original ListButton.
Please note that this is a simplified example and you might need to adjust it according to your application's structure and requirements.
For more information, you can refer to the documentation (https://refine.dev/docs/api-reference/mui/components/basic-views/edit).
----------------------
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
----------------------<@196423433930670080> kapa.ai is still learning and improving, please let us how it did by reacting below