It's run a total of 15 (!!) times for just one page reload, even though I have attached that afterRead hook to just one single field. Is it supposed to work that way?
The collection I'm using:
https://paste.gg/p/anonymous/6ba997cb994d4a32bbe29d0f75bb87b9First 5 times siblingdata works as usual. Last 10 times siblingdata is empty.
Hey
@360823574644129795, I just tried this out and got 6 times... which seems a lot, all of them had siblingData however
hey hey, is there a reason why it runs multiple times? Or should it only run one time.
Will test it out later again - maybe it got better in a newer version of payload
Okay I've done a bit of learning from the team - if you are reloading the page in the admin UI it is not unexpected behavior, this is because there are many other variables that can cause it to run extra times including versions, preferences, access control, doc relationships etc.
If you hit the api route directly, you should see it only run once (which I found to be the case when I tested it).
If you get a chance to test again let me know what you find
I have a collection with multiple items. The collection config has a field with an afterRead hook
Is it normal that it fires for every item on the collection when viewing the items of the collection
/ Is there a way to make it only run when viewing a particular item
like not a specific item, but just when editing an item
Out of curiosity, what's your use case
@1049775120559898725? 👀
With items, do you mean documents?
Yess
We have a separate API that stores some user information
We want to call that API, pass an id stored on the payload user, and get back an array of some data
For each item in the array, we want to display a field
Interesting, definitely sounds like the perfect application for afterRead field hook 😅
Is there anything in
req
that might be different when on the edit page maybe, that you could use to condition the hook? 🤔
sorry for bumping this old topic, but did you find a solution on why is it firing up in the list view? I have the same issue,
afterRead
fires for every item in the collection and it's not necessary. I'd like it to fire only when I open the item for editing. Did you find a way to fix this? Thank you. 🙂
I was talking about that point yesterday on 3.0 feedback channel. My hook runs 3 times if I force a reload, but if I do a http request it runs only once.
Thanks
@535474572586254338In my hooks I'm using the local API to create and update collection items. The updating part is what's causing issues, it's executed every time I open the item itself or the collection list view. I'll try to do it over HTTP.
Star
Discord
online
Get dedicated engineering support directly from the Payload team.