小编Dan*_*Dan的帖子

如何在React中重定向到另一条路径时传递状态/道具?

我有一个注册表单,在用户注册后,它将重定向到电子邮件确认页面(/确认),用户输入我通过电子邮件发送的确认码.当用户提交确认代码时,我想将代码和用户的电子邮件发送到服务器端.

我的注册表单代码(简化):

    constructor(props){
          super(props);
          this.state = {
             email: '',
             password: '',
             errors: {},
          }
       }
    handleSubmit(e){
        e.preventDefault();
        this.props.userSignup(this.state).then(
            () => {
               this.context.router.push({
                  pathname: '/confirmation'
               })
            },

         )
   }
   render(){ ...
Run Code Online (Sandbox Code Playgroud)

我不想在我的路径上添加任何参数.
我怎样才能this.state.email转到确认页面?

reactjs react-router

7
推荐指数
2
解决办法
2万
查看次数

从对象数组创建嵌套数组数据

我有一个包含嵌套数据信息的对象数组,我想将数据转换为实际的嵌套数组数据。我该如何转换:

const data = [
  {id: 1, parent_id: null, name: 'test1'},
  {id: 2, parent_id: null, name: 'test2'},
  {id: 3, parent_id: 2, name: 'test3'},
  {id: 4, parent_id: 2, name: 'test4'},
  {id: 5, parent_id: 4, name: 'test5'},
  {id: 6, parent_id: 4, name: 'test5'},
  {id: 7, parent_id: 2, name: 'test5'},
  {id: 8, parent_id: 2, name: 'test5'},
  {id: 9, parent_id: null, name: 'test5'},
  {id: 10, parent_id: null, name: 'test5'},
]
Run Code Online (Sandbox Code Playgroud)

对此:

const data = [
  {id: 1, parent_id: null, name: 'test1'},
  {
    id: 2, …
Run Code Online (Sandbox Code Playgroud)

javascript arrays json

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

如何在plotly.js中为图例提供固定宽度

我正在使用plotly.js 创建图表。有些图表的图例内有很长的文本,因此这些文本使图例不必要变大。我想给图例固定宽度,如果文本长度很长,我希望它被换行。

我一直试图通过操作 DOM 上的 svg 元素来做到这一点,但由于图例是svg:g标签,所以我真的不能做太多事情。我也尝试 Give textLengthto <text>,但它确实会换行文本,但不会换行。

有没有办法给图例固定宽度?

javascript svg plotly

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

如何获取表中某一列值最高的3条数据

我正在使用 knex 和书架,我的表由作者、标题、内容、计数组成,每个数据如下所示:

author: 'John Doe',
title: 'aaaaa',
content: 'aaaaaaaa'
count: 54,
Run Code Online (Sandbox Code Playgroud)

我想根据count的值检索数据,我想得到4个count值最高的数据。

如果我想检索所有数据,我这样做:

router.get('/', (req, res) => {
   Article.forge().fetchAll().then(article => {
      res.json(article);
   })
}) 
Run Code Online (Sandbox Code Playgroud)

有什么方法可以做,forge({ count: 3 data that has the highest count value })或者
我应该添加什么代码才能实现这一目标?

bookshelf.js knex.js

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

在没有jQuery的情况下,在达到最大长度值时集中下一个输入,而无需jQuery,并且仅接受数值

我有两个关于反应输入的问题。有什么办法可以使输入一旦达到maxLength时自动使焦点集中在下一个字段上,而无需使用jquery进行反应。

<form>
    <input type="text" maxLength="4" />
    <input type="text" maxLength="4" />
    <input type="text" maxLength="4" />
</form>
Run Code Online (Sandbox Code Playgroud)

第二个问题是当type =“ text”时,如何使输入仅接受数字值?

javascript reactjs

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

创建 React 应用程序:使用 PUBIC_URL 设置 OG 图像不起作用

我正在尝试设置og-imageCRA 应用程序,我正在这样做:

<meta content="website" property="og:type" /> <meta content="%PUBLIC_URL%/og-image.png" property="og:image" /> <meta content="Tile goes here..." property="og:title" />

图像位于pubic文件夹内,但图像未显示在操作上。
当我这样做时http://localhost:3000/og-images.png,它起作用了。但是,我不想在这里设置固定值。

我做错了什么?

编辑:我的文件夹结构:

app
  - public
    - index.html
    - favicon.ico
    - og-image.png
  - src
Run Code Online (Sandbox Code Playgroud)

html facebook-opengraph reactjs create-react-app

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

如何在数组数组中的相同索引处获取最大值?

我有这样的数据:

data = [
   [{a: "b", value: 12}, {a: "bb", value: 39}, {a: "bb",  value: 150}],
   [{a: "c", value: 15}, {a: "cc", value: 83}, {a: "ccc", value: 12}],
   [{a: "d", value: 55}, {a: "dd", value: 9},  {a: "dd",  value: 1}]
]
Run Code Online (Sandbox Code Playgroud)

我想在这个数据中获得相同索引的最大值,所以我希望结果如下:

[55, 83, 150]
Run Code Online (Sandbox Code Playgroud)

现在,我可以获取对象中的每个值,如果指定索引,我可以获得最大值.我不确定如何使用每个索引.

let array = [];
data.map((eachArr, index) => {
   array.push(eachArr[0].value)

   for(let i = 0; i < eachArr.length; i++){
     console.log('eachArr[i].value', eachArr[i].value, i);
   }
})
console.log(Math.max(...array)) ===> 55
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

我认为人们误解了我的问题.我不想要每个数组的最大值.我希望value每个数组中具有相同索引的最大值.所以我希望55,13,​​55,83分别来自39分,83分,9分和150分,分别是150分,12分,1分.我很抱歉没有具体.我应该有一个不同长度的例子.

javascript arrays

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

两个数组到对象数组的对象

我有这样的数据:

var data = {
  value1: ["a", "b", "c"],
  value2: [1, 2, 3]
}
Run Code Online (Sandbox Code Playgroud)

我想将其转换为:

var newData = [
  {value1: "a", value2: 1},
  {value1: "b", value2: 2},
  {value1: "c", value2: 3}
]
Run Code Online (Sandbox Code Playgroud)

我怎样才能通过javascript实现这一目标?

javascript

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

从每个对象数组中获取最大值

所以我有这样的数据:

data = [
         [{a: "b", value: 12}, {a: "bb", value: 39}, {a: "bb", value: 150}],
         [{a: "c", value: 15}, {a: "cc", value: 83}, {a: "ccc", value: 12}],
         [{a: "d", value: 55}, {a: "dd", value: 9}, {a: "dd", value: 1}]
       ]
Run Code Online (Sandbox Code Playgroud)

我希望在每个对象数组中获得最大值.所以结果应该是这样的:

maxValues = [150, 83, 55]
Run Code Online (Sandbox Code Playgroud)

现在我的代码是:

let maxValues = []
let tmp;
let highest = Number.NEGATIVE_INFINITY;

data.map((eachArr, index) => {
  for(let i = eachArr.length -1; i >= 0; i--){
    tmp = eachArr[i].value;
    if(tmp > highest) highest = tmp; …
Run Code Online (Sandbox Code Playgroud)

javascript arrays

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

如何在 React 中填写所有输入后立即提交表单?

我有一个这样的表格(简化):

handleSubmit(e){
   e.preventDefault();
}
render(){
   return (
       <form onSubmit={this.handleSubmit.bind(this)}>
          <input type="text" maxLength="1"/>
          <input type="text" maxLength="1"/>
          <input type="text" maxLength="1"/>
          <input type="text" maxLength="1"/>
       </form>
   )
}
Run Code Online (Sandbox Code Playgroud)

如您所见,没有提交表单的按钮,因为我想在用户填写所有输入时自动提交表单。
另外,为了清楚起见,我并不是要找出如何使用回车键提交表单。

我怎样才能做到这一点?

reactjs

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

按数组排序并保持顺序

我有这样的数据:

var data = [
  ['a', 2010], ['a', 2011], ['a', 2012],
  ['b', 2010], ['b', 2012], ['b', 2013],
  ['c', 2010], ['c', 2011], ['c', 2012],['c', 2013]
]
Run Code Online (Sandbox Code Playgroud)

我希望按年对这个数组进行排序但是保持数据的顺序,所以输出将是:

var data = [
  ['a', 2010], ['b', 2010], ['c', 2010], 
  ['a', 2011], ['c', 2011], 
  ['a', 2012], ['b', 2012], ['c', 2012],
  ['b', 2013], ['c', 2013]
]
Run Code Online (Sandbox Code Playgroud)

如您所见,每个数据(a,b,c)并不总是包含每年的数据(如2011年的b或2013年的数据)

如果我使用sort()函数,它会按年份排序,但不按顺序排序.

var data = [
  ['a', 2010], ['a', 2011], ['a', 2012],
  ['b', 2010], ['b', 2012], ['b', 2013],
  ['c', 2010], ['c', 2011], ['c', 2012],['c', 2013]
]
var …
Run Code Online (Sandbox Code Playgroud)

javascript arrays sorting

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