[Hooks] What is accepted on useEffect's 2nd argument
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 11.8k
- Forks
- 7.9k
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 11
Description
I assume currently it only do equal (===) comparison, since passing array of array isn't preventing it.
import React, { useState, useEffect } from 'react';
export default () => {
let [count, setCount] = useState(0);
let guard = [0, 1, 2];
useEffect(() => {
setTimeout(() => {
setCount(count + 1);
}, 2000); // delay to prevent lagging
}, [guard]);
return <div>{count}</div>;
};
I don't find anything in current documentation. I think it is needed to add accepted types passed into that 2nd argument.
On side note, I wonder what In the future, the second argument might get added automatically by a build-time transformation. phrase means.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the useEffect documentation entry point and the issue's nested-array example; verify what the second argument accepts and how dependency comparison is described. Also explain the quoted build-time-transformation sentence. Done means the docs answer both questions clearly, including the example's behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, react
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100