小编Tob*_*oby的帖子

在 Django Rest Framework 中修改序列化程序中的字段名称

我有一个对象,我想使用 DRF 的序列化程序进行序列化,但我想规范化一些字段名称。我想我可以使用该source属性来实现这一点:

user = { 'FirstName': 'John', 'LastName': 'Doe' }

serialized = UserSerializer(data=user)

class UserSerializer(serializers.Serializer):
    first_name = serializers.CharField(source="FirstName")
    last_name = serializers.CharField(source="LastName")
Run Code Online (Sandbox Code Playgroud)

但是,我不确定如何访问传入的数据对象 - 有没有不创建新方法或某种复杂super()调用的方法?

编辑:

用例:我正在使用一个 API,它返回 CamelCase 中的值('FirstName'、'LastName' 等),我需要验证并修改密钥名称为蛇形大小写。我希望我可以使用独立的序列化程序,并在序列化程序中转换名称。我没有必须转换的数据的模型。

python serialization django-rest-framework

5
推荐指数
2
解决办法
3008
查看次数

使用CSS变换进行倾斜后应用于位置div的边距

可能比CSS更多的数学,但我正在尝试确定一种在应用CSS skewY变换后调整div定位的方法.

在下面的代码片段中,带有蓝色边框的div应用了3.5deg skewY,我想知道是否有一种数学方法可以知道top应用于蓝色div的数量,以便右上角始终完美无论两个div的宽度如何,都使用红色边框与div的右上角对齐.

我使用%和玩过数字vw,但我正在寻找一个可靠的基于数学的解决方案.

.parent {
  border: 1px solid red;
  position: relative;
  margin-top: 100px;
  height: 200px;
}

.child {
  border: 1px solid blue;
  position: absolute;
  width: 100%;
  height: 100%;
  transform: skewY(-3.5deg);
}
Run Code Online (Sandbox Code Playgroud)
<div class="parent">
  <div class="child">
    content
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

css math css3 css-transforms

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

在redux状态下存储什么?

我正在构建一个中等规模的React/Redux应用程序,我对React非常熟悉 - 但是,Redux仍然有点难以理解.

我知道我可以使用 connect()Redux将任何组件或容器连接到Redux状态.但是,我不清楚何时这样做 - 是否基于复杂性?需要将多少道具传递给子组件?

我可以用什么因素来确定何时使用connect()

编辑提供一个例子:-----

例如,我想在我的应用程序中为用户添加一个消息区域,特别是显示未读消息数量的徽章.我是否只想connect()展示徽章的任何组件?

reactjs redux

3
推荐指数
3
解决办法
3521
查看次数

React hooks 使用计时器管理 API 调用

我需要执行一个返回 URL 的 fetch API 调用,对返回的 URL 执行一些操作,然后在 60 秒后刷新 URL。这是我可以在没有钩子的情况下轻松实现的东西,但我想要一个钩子解决方案。

重要提示:我不打算将其重构为多个组件,或者为计时器或 API 调用创建自定义挂钩。

编辑:问题是 - 这是在钩子环境中处理计时器的正确方法吗?有没有更好的办法?

import React, { useState, useEffect } from 'react'
import { post } from 'utils/requests'

const FetchUrl = ({ id }) => {
  const [url, setUrl] = useState('')
  let [count, setCount] = useState(0)

  const tick = () => {
    let newCount = count < 60 ? count + 1 : 0
    setCount(newCount)
  }

  useEffect(() => {
    const timer = setInterval(() => tick(), …
Run Code Online (Sandbox Code Playgroud)

fetch setinterval reactjs react-hooks

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

在stylelint中无法将block-no-empty设置为false

鉴于以下内容package.json:

"stylelint": { "extends": "stylelint-config-standard", "rules": { "string-quotes": "single", "block-no-empty": false, "indentation": 2 } } 我无法弄清楚如何覆盖block-no-empty.如果我将其设置为false,我会收到错误:

Invalid Option: Unexpected option value "false" for rule "block-no-empty"

我错过了某种覆盖语法吗?

stylelint

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

使用Axios和Promises循环API调用

我正在使用Axios进行API调用,对于一个调用,我想继续轮询API,直到得到响应为止。

但是,当我调用此函数时,要比预期更早地解决了诺言。

我在这里调用该函数:

componentDidMount() {
  api.getUser(this.props.user.id)
  .then((response) => {
    console.log(response);
    this.handleSuccess(response.content);
  })
  .catch((error) => {
    this.handleError(error);
  });
}
Run Code Online (Sandbox Code Playgroud)

console.log在第4所显示undefined。该函数会继续轮询并在收到有效数据时停止。

函数本身:

getUser(id, retries = 0) {
  return axios(getRequestConfig)
  .then((res) => {
    if (res.data && res.data.content.status === 200) {
      return Promise.resolve(res.data); // success!
    } else if (retries >= 15) {
      return Promise.reject(res); // failure
    } else {
      // try again after delay
      delay(1000)
      .then(() => {
        return this.getUser(id, retries + 1);
      })
    }
  })
  .catch(err => err);
}
Run Code Online (Sandbox Code Playgroud)

javascript polling axios

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

在 prod 构建中创建 JS 和 CSS 的 Create-React-App 绝对路径

我正在使用 create-react-app 并且在 prod 中我想在 s3 上提供 JS 和 CSS 以及其他静态资产,但从另一个位置提供 index.html 文件。但是,构建文件中的 URL 都是相对路径。

有没有办法(不弹出)在生产版本中使用绝对 URL?

url path create-react-app

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

条件React PropTypes

我有一个React组件,我想强制提供其中两个道具之一-如果都没有提供,我希望能够触发PropType警告:

MyComponent.propTypes = {
  firstProp: PropTypes.string.isRequired, // required only if `otherProp` not provided
  otherProp: PropTypes.string.isRequired, // required only if `firstProp` not provided
}
Run Code Online (Sandbox Code Playgroud)

我相信AirBnB的prop-types可以做到这一点,但我想知道是否只能使用React PropTypes做到这一点。

reactjs react-proptypes

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