小编Yin*_*ver的帖子

useState 根本不更新数组

我正在尝试使用从子组件接收到的输入,使用 React Hooks 更新数组的状态。

这是我尝试更新的数组的代码(在我的 App.js 文件中):

 const [results, setResults] = useState([]);

  const submitHandler = newResult => {
    const newArray = [...results, newResult];
    setResults(newArray);
    console.log(newArray);
    console.log(results);
  }
Run Code Online (Sandbox Code Playgroud)

newArray正确更新并记录通过子组件提交的所有项目。但 的状态results永远不会更新,并且它总是记录一个空数组。应该注意的是,我的应用程序中的其他 useState 挂钩工作正常,只有我用于该数组的挂钩不起作用。有谁知道可能出了什么问题以及如何修复?

如果有帮助的话,这是从子组件(Shorten.js)提交项目的代码 - 这些钩子工作得很好:

    const [urlInput, setUrlInput] = useState("");
    const [error, setError] = useState(false);

    const changeHandler = event => {
        setUrlInput(event.target.value);
    }

    const submitHandler = event => {
        event.preventDefault();

        if (urlInput === "") {
            setError(true);
        }
        else {
            setError(false);

            axios.post("https://rel.ink/api/links/", {
                url: urlInput
            })
                .then(response => …
Run Code Online (Sandbox Code Playgroud)

javascript arrays reactjs react-hooks use-state

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

arrays ×1

javascript ×1

react-hooks ×1

reactjs ×1

use-state ×1