小编div*_*ent的帖子

为什么 devise sanitizer 返回空哈希

我正在编写一个仅 API 的 Rails 5 应用程序,并使用 devise-jwt (和 devise)gem 进行用户身份验证。我正在尝试在我的自定义registrations_controller 中配置强大的参数。在application_controller.rb

before_action :configure_permitted_parameters, if: :devise_controller?

def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:sign_up, keys: [:first_name, :last_name, :username, :email])
end
Run Code Online (Sandbox Code Playgroud)

并在registrations_controller.rb

def create
    build_resource(sign_up_params)
    resource.save
    #json response defined in application_controller.rb
    render_resource(resource)
end
Run Code Online (Sandbox Code Playgroud)

这是当我通过 Postman 向 API 发出 POST 请求时控制台的输出:

Parameters: {"first_name"=>"john", "last_name"=>"stones", "username"=>"johnstones", "email"=>"john@stones.com"}

params这是打印到控制台的输出:

<ActionController::Parameters {"first_name"=>"john", "last_name"=>"stones", "username"=>"johnstones", "email"=>"john@stones.com", "controller"=>"registrations", "action"=>"create"} permitted: false>

尽管有上述情况,当我这样做时,devise_parameter_sanitizer.sanitize(:sign_up)我得到一个空哈希,并且我前面提到的 POST 抛出了我为空白字段设置的验证错误。请帮我弄清楚我缺少什么,谢谢。

(导轨 5.2/设计 4.2)

ruby ruby-on-rails devise rails-api

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

为什么不`useContext` 重新渲染我的组件?

根据文档

<MyContext.Provider>组件上方最近的更新时,此 Hook 将使用传递给该 MyContext 提供程序的最新上下文值触发重新渲染。即使祖先使用React.memoor shouldComponentUpdate,仍然会使用 useContext 从组件本身开始重新渲染。...当上下文值更改时,调用 useContext 的组件将始终重新渲染。

在我的 Gatsby JS 项目中,我将我的 Context 定义为:

上下文.js

import React from "react"

const defaultContextValue = {
  data: {
    filterBy: 'year',
    isOptionClicked: false,
    filterValue: ''
  },
  set: () => {},
}

const Context = React.createContext(defaultContextValue)

class ContextProviderComponent extends React.Component {
  constructor() {
    super()

    this.setData = this.setData.bind(this)
    this.state = {
      ...defaultContextValue,
      set: this.setData,
    }
  }

  setData(newData) {
    this.setState(state => ({
      data: {
        ...state.data,
        ...newData,
      }, …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs gatsby react-context react-hooks

0
推荐指数
1
解决办法
4449
查看次数