javascript - url 中出现的查询 react

标签 javascript reactjs react-router

我正在使用 HashRouter 在 React 上制作一个应用程序。在应用程序中,我有一个包含输入的表单,在用户提交数据后,一些数据会出现在 URL 中,如下所示:

http://localhost:3000/?State=Alabama#/profile

当它应该只是

http://localhost:3000/#/profile

提交按钮上的功能只是获取所有值并将其发送到数据库,如下所示:

    handleSubmit() {
        const { userUrl } = this.props;
        let { street_address, state, city, zip, email, phone, avatar, about_message, proximity } = this.state;

        if (this.props.user.title === 'caregiver') {
            axios.put('/update/profile', {
                street_address,
                state,
                city,
                zip,
                email,
                phone,
                avatar: userUrl.length ? userUrl : avatar,
                about_message,
                proximity
            })
                .then(response => {
                    console.log(response);
                    this.setState({
                        street_address,
                        state,
                        city,
                        zip,
                        email,
                        phone,
                        avatar,
                        about_message,
                        proximity
                    })
                })
                .catch(error => console.log(error))
        }
    }

我发现问题部分出在表单中,因为某些输入具有 name=""属性,如果我将其取出,它就不会显示在 URL 中。但问号仍然出现。

最佳答案

您需要阻止表单进行默认提交:

handleSubmit(e) {
        e.preventDefault()
        const { userUrl } = this.props;
        let { street_address, state, city, zip, email, phone, avatar, about_message, proximity } = this.state;

        if (this.props.user.title === 'caregiver') {
            axios.put('/update/profile', {
                street_address,
                state,
                city,
                zip,
                email,
                phone,
                avatar: userUrl.length ? userUrl : avatar,
                about_message,
                proximity
            })
                .then(response => {
                    console.log(response);
                    this.setState({
                        street_address,
                        state,
                        city,
                        zip,
                        email,
                        phone,
                        avatar,
                        about_message,
                        proximity
                    })
                })
                .catch(error => console.log(error))
        }
    }

关于javascript - url 中出现的查询 react ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49016471/

相关文章:

javascript - 如何获得使用 css 转换的元素的最终高度?

javascript - Angular2 选择中的模型何时反射(reflect)更改

javascript - 在 React 中,根据之前和当前的 props,在哪里设置状态?

javascript - 将 Prop 从 react 路由器传递给服务器上的 child

javascript - 如何将 this.state 传递给 react-routes?

javascript - 如果条件评估为 false,javascript 是否仍会为 "IF"场景分配内存?

javascript - 在名字和姓氏之后对数组进行排序,javascript

javascript - 理解 React 高阶组件

reactjs - 如何使用组件中的数据使用组件中的 react-router 链接传递数据?

android - 如何在 React Native 的文本上添加删除线?