反应TypeError:x不是函数

WHO

我在子组件中从父函数调用了“ booksRefresh()”函数,但出现错误:

TypeError:booksRefresh不是函数

我不知道为什么,因为'booksRefresh'是一个函数。有人可以帮我解释为什么会发生此错误吗?

这是我的代码:

import React, {useState} from "react";
import {Redirect} from "react-router";
import {addBook} from "../api/api";
import {Button} from "react-bootstrap";

const AddBookForm = (booksRefresh) => {
    const [title, setTitle] = useState();
    const [description, setDescription] = useState();
    const [submitted, setSubmitted] = useState(false);

    const postRequestHandler = () => {
        addBook(title, description);
        booksRefresh();
    }
...
 return (
        ...
            <Button type="submit" onClick={postRequestHandler} variant="outline-success">Add</Button>
        </div>
    )

上级:

function App({history}) {
  ...
    const [changeInBooks, setChangeInBooks] = useState(0)

    const booksRefresh = () => {
        let incrementChangeInBook = changeInBooks + 1;
        setChangeInBooks(incrementChangeInBook)
    }
return (
        <div className="App">
            <header className="App-header">
                ...
                            <Button variant="outline-success" onClick={() => history.push("/new-book")}>
                                {ADD_BOOK}</Button>
                ...
            </header>
            <Switch>
                ...
                <Route path="/new-book" exact render={() =>
                    <AddBookForm
                        booksRefresh={booksRefresh}/>
                }/>
               ...
            </Switch>
        </div>
    );
}

export default withRouter(App);
TJ人群

React函数组件接收到的参数是其props,它是一个对象,每个属性都具有命名属性。因此,您AddBookForm的参数不应为booksRefresh,而是(按照惯例)props,然后通过props.booksRefresh()以下方式使用它

const AddBookForm = (props) => {
// −−−−−−−−−−−−−−−−−−^^^^^
    const [title, setTitle] = useState();
    const [description, setDescription] = useState();
    const [submitted, setSubmitted] = useState(false);

    const postRequestHandler = () => {
        addBook(title, description);
        props.booksRefresh();
// −−−−−^^^^^^
    }

    // ...

或者,如果它是唯一的道具,则可以使用adiga显示的解构

const AddBookForm = ({booksRefresh}) => {

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

反应:TypeError:调度不是函数

来自分类Dev

反应TypeError this._test不是函数

来自分类Dev

反应-TypeError:this.props.AccountId不是函数

来自分类Dev

反应测试:“ TypeError:MutationObserver不是构造函数”

来自分类Dev

反应Redux错误TypeError:sourceSelector不是函数

来自分类Dev

反应错误:TypeError:render不是函数

来自分类Dev

TypeError:“ x”不是构造函数

来自分类Dev

反应代码抛出“ TypeError:this.props.data.map不是函数”

来自分类Dev

TypeError:Object(...)不是函数反应S3

来自分类Dev

反应| TypeError:this.state.cars.map不是函数

来自分类Dev

未捕获的TypeError:r不是函数-Google登录错误-反应

来自分类Dev

反应Redux TypeError this.props.setEmailText不是函数

来自分类Dev

开玩笑/反应/ Mobx:TypeError mobxReact.observer不是函数

来自分类Dev

反应-TypeError:jokes.map不是一个函数

来自分类Dev

.map 不是函数 - 反应

来自分类Dev

Google Map上的突然错误:TypeError:_.x不是函数

来自分类Dev

Javascript中的“未捕获的TypeError:x.toUpperCase不是函数”

来自分类Dev

反应:“.map 不是函数”问题

来自分类Dev

地图不是反应中的函数

来自分类Dev

反应未捕获的TypeError:this.setState不是一个函数

来自分类Dev

角2反应形式错误-TypeError:this.form.get不是一个函数

来自分类Dev

反应TypeError:this.state.List.map不是一个函数

来自分类Dev

反应错误:未处理的拒绝(TypeError):this.state.categories.map不是函数

来自分类Dev

反应-“ TypeError:未定义不是函数(在'... formFields.map ...'附近)”

来自分类Dev

删除后做出反应,我得到“未处理的拒绝(TypeError):this.state.products.filter不是函数”

来自分类Dev

反应路由器TypeError:_NavbarActions2.default.updateOnlineUsers不是函数

来自分类Dev

TypeError:onEmailBlur不是函数

来自分类Dev

TypeError:$ .debounce不是函数

来自分类Dev

TypeError:$(...)。children不是函数

Related 相关文章

  1. 1

    反应:TypeError:调度不是函数

  2. 2

    反应TypeError this._test不是函数

  3. 3

    反应-TypeError:this.props.AccountId不是函数

  4. 4

    反应测试:“ TypeError:MutationObserver不是构造函数”

  5. 5

    反应Redux错误TypeError:sourceSelector不是函数

  6. 6

    反应错误:TypeError:render不是函数

  7. 7

    TypeError:“ x”不是构造函数

  8. 8

    反应代码抛出“ TypeError:this.props.data.map不是函数”

  9. 9

    TypeError:Object(...)不是函数反应S3

  10. 10

    反应| TypeError:this.state.cars.map不是函数

  11. 11

    未捕获的TypeError:r不是函数-Google登录错误-反应

  12. 12

    反应Redux TypeError this.props.setEmailText不是函数

  13. 13

    开玩笑/反应/ Mobx:TypeError mobxReact.observer不是函数

  14. 14

    反应-TypeError:jokes.map不是一个函数

  15. 15

    .map 不是函数 - 反应

  16. 16

    Google Map上的突然错误:TypeError:_.x不是函数

  17. 17

    Javascript中的“未捕获的TypeError:x.toUpperCase不是函数”

  18. 18

    反应:“.map 不是函数”问题

  19. 19

    地图不是反应中的函数

  20. 20

    反应未捕获的TypeError:this.setState不是一个函数

  21. 21

    角2反应形式错误-TypeError:this.form.get不是一个函数

  22. 22

    反应TypeError:this.state.List.map不是一个函数

  23. 23

    反应错误:未处理的拒绝(TypeError):this.state.categories.map不是函数

  24. 24

    反应-“ TypeError:未定义不是函数(在'... formFields.map ...'附近)”

  25. 25

    删除后做出反应,我得到“未处理的拒绝(TypeError):this.state.products.filter不是函数”

  26. 26

    反应路由器TypeError:_NavbarActions2.default.updateOnlineUsers不是函数

  27. 27

    TypeError:onEmailBlur不是函数

  28. 28

    TypeError:$ .debounce不是函数

  29. 29

    TypeError:$(...)。children不是函数

热门标签

归档