【问题标题】:search data related to localstorage item搜索与本地存储项相关的数据
【发布时间】:2020-03-22 19:38:34
【问题描述】:

我正在使用简单的 React todo 应用程序。我想搜索与注册或登录时保存在本地存储中的电子邮件相关的所有项目。我还保存了带有待办事项的电子邮件.. 获取特定待办事项的 redux 操作是:

        return dispatch => {
            dispatch(itemsLoading())
           localStorage.getItem('email')
            const queryParams = '?search=' + createdBy + '&orderBy="register_date"&equalTo="' + register_date + '"';
            axios.get('/api/todos')
                .then(res => {
                console.log(res.data)
                })
                .catch(err => {
                    console.log('error to search')
                    // dispatch(fetchOrderFail(err))
                })
        }
    }```

【问题讨论】:

    标签: javascript node.js reactjs redux


    【解决方案1】:

    在您的 axios 获取请求中,您似乎没有在 url 中包含查询参数。您也没有以任何方式存储您的 localStorage 请求。

    我也不确定您的查询参数的结构,但作为初学者,我会像这样重组您的 api 请求:

    import axios from 'axios'
    
    export const getTodos = () => {
      return dispatch => {
         dispatch(itemsLoading())
         const createdBy = localStorage.getItem('email')
         axios.get(`/api/todos?search=${createdBy}`)
           .then(res => console.log(res))
           .catch(error => console.log(error))
      }
    }
    

    您可能还希望在 .then() 处理程序中发送一个成功操作,并在您的 .catch() 处理程序中发送一个失败操作。

    【讨论】:

    • 这也可以通过 ref 关键字通过后端(在猫鼬模型中)完成。有什么想法吗?
    • 如果您已将 todos 保存为 User 模型上的 ref(例如),您将编写如下内容:``` User. findOne({电子邮件:电子邮件})。填充(“待办事项”)。 exec(function (err, user) { if (err) return handleError(err); return user }); ``` 这是来自 Mongoose 文档的代码的衍生版本:mongoosejs.com/docs/populate.html#population 您希望从 http 路由处理程序中的查询参数中提取电子邮件。
    【解决方案2】:

    你需要做的以下步骤 1. 存储在localStorage。 2.可以使用filter es6过滤掉数据。

    【讨论】:

      猜你喜欢
      • 2021-10-30
      • 1970-01-01
      • 2013-04-15
      • 2012-05-05
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      • 2013-07-27
      • 1970-01-01
      相关资源
      最近更新 更多