小编Nor*_*yan的帖子

如何将defaultOption添加到AsyncSelect?

我正在为我的组件使用异步反应选择,但无法解决默认选项的问题。文档无法帮助我,因为没有与我的问题相关的示例。

const campaignToOption = campaign => ({value: campaign.id, label: campaign.name});

const loadOptionsWrapper = fetchAll =>
    input => fetchAll({
        _limit: 10000,
        q: input,
        _sort: 'name',
        _order: 'asc',
    }).then(campaigns => _(campaigns).reject('meta').map(campaignToOption).values());

const defaultProps = {
    options: [],
    placeholder: 'Campaign: Not selected',
};

const CampaignFilter = props => {
    return <Async
        defaultOptions={[{label: 'All Campaigns', value: '-2', group: true}]}
        loadOptions={loadOptionsWrapper(props?.actions?.fetchAllCampaigns)}
        {...defaultProps}
        {...props}
    />;
};

export default CampaignFilter;
Run Code Online (Sandbox Code Playgroud)

我想添加一个选项,让用户选择所有选项。因此,在 AsyncSelect 的情况下,选项是异步加载的。文档说我们可以使用defaultOptions。

defaultOptions 属性确定您的远程请求最初被触发的“时间”。该属性有两个有效值。向此道具提供选项数组将填充打开选择时使用的初始选项集,此时远程加载仅在过滤选项(在控件中键入)时发生。单独提供 prop(或使用“true”)告诉控件立即触发由 loadOptions 描述的远程请求,以获取 Select 的初始值。

当我们使用它时,我只能在下拉菜单中获得默认选项,如下所示` 在此输入图像描述

但我的目标是获得像这张照片这样的组件`

在此输入图像描述

javascript reactjs react-select

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

如何获取按对象键过滤的唯一对象数组?

我有一个对象数组。对象包含有关城市及其几何信息的信息。这是我的数组

> [ {country: "AM", name: "Abovyan", lat: 40.27368, lng: 44.63348},
> {country: "AM", name: "Abovyan", lat: 40.04851, lng: 44.54742},
> {country: "AM", name: "Kapan", lat: 39.20755, lng: 46.4057} ]
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我有 2 个具有相同名称的对象(例如 Abovyan),但它们的几何信息不同。我从一些 API 获得这个数组,我想过滤它。我如何过滤它以使其只有一个具有特定键/值的对象(在本例中为名称)

我想得到一个像这样的过滤数组`

[ {country: "AM", name: "Abovyan", lat: 40.27368, lng: 44.63348},
  {country: "AM", name: "Kapan", lat: 39.20755, lng: 46.4057} ]
Run Code Online (Sandbox Code Playgroud)

javascript arrays

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

Redux Reselect备忘录如何工作?

我试图集成reselect到当前的应用程序中,并且一如既往,首先我开始阅读文档,然后如果需要的话,又重新整理了文档。我既不理解文档的一个特殊部分,也找不到能够在文档中解释的资源。更清晰的方式。现在我在这里得到一些明确的解释。所以它在文档中说

import React from 'react'
import Footer from './Footer'
import AddTodo from '../containers/AddTodo'
import VisibleTodoList from '../containers/VisibleTodoList'

const App = () => (
  <div>
    <VisibleTodoList listId="1" />
    <VisibleTodoList listId="2" />
    <VisibleTodoList listId="3" />
  </div>
)
Run Code Online (Sandbox Code Playgroud)

将getVisibleTodos选择器与VisibleTodoList容器的多个实例一起使用将无法正确记住:

import { connect } from 'react-redux'
import { toggleTodo } from '../actions'
import TodoList from '../components/TodoList'
import { getVisibleTodos } from '../selectors'

const mapStateToProps = (state, props) => {
  return {
    // WARNING: THE FOLLOWING SELECTOR DOES NOT CORRECTLY MEMOIZE
    todos: getVisibleTodos(state, …
Run Code Online (Sandbox Code Playgroud)

reactjs redux react-redux reselect

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

在构造函数中访问道具的正确方法是什么?

在构造函数中访问props的正确方法是什么?是的,我知道在React文档中说

在为React.Component子类实现构造函数时,应在其他任何语句之前调用super(props)。否则,this.props将在构造函数中未定义,这可能会导致错误

更明确地说,this.props如果仅在构造函数中使用props ,为什么会需要

class MyComponent extends React.Component {    
    constructor(props) {
        super(props)

        console.log(props)
        // -> { something: 'something', … }
        // absolutely same
        console.log(this.props)
        // -> { something: 'something', … }
    }
}
Run Code Online (Sandbox Code Playgroud)

有什么情况下可以使用propsthis.props吗?

javascript constructor class ecmascript-6 reactjs

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

React 路由器重定向页面但组件未渲染

当路由更改时,我在渲染组件时遇到了一个奇怪的问题。\n我使用的版本

\n\n
{\n  "react": "16.9.0",\n  "react-dom": "16.9.0",\n  "react-router-dom": "5.1.0"\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我的路线配置

\n\n
const Routes = () => {\n    const isLoggedIn = StorageManager.get(\'session\');\n    return (\n        <>\n            <div className="background"></div>\n            <MainLayout>\n                <Header />\n                <LeftSidebarMenu />\n                <main className="main-container">\n                    <Router history={history}>\n                        <Switch>\n                            <Redirect exact from="/" to="/categories" />\n                            <Route exact path=\'/categories\' component={Home} />\n                            <Route exact path=\'/categories/new\' component={CreateCategory} />\n                            <Route exact path=\'/login\' component={Login}\n                                />\n                        </Switch>\n                    </Router>\n                </main>\n            </MainLayout>\n        </>\n    );\n};\n\nexport default Routes;\n
Run Code Online (Sandbox Code Playgroud)\n\n

主要问题是,当用户单击登录/注销时,如果成功/失败,它应该将用户重定向到适当的页面。实际上路线发生了变化,但组件没有被渲染。我使用history.push(PATH)来重定向用户。我不是react初学者,说实话,我第一次遇到这种奇怪的问题。也许我把一些东西与我的路由器配置混淆了。

\n\n
import React, {useState} from \'react\';\nimport {withRouter, Link} from \'react-router-dom\';\nimport Modal …
Run Code Online (Sandbox Code Playgroud)

reactjs react-router react-router-dom

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

如何在打字稿中的函数参数中添加默认值?

我试图在我的函数中添加最后一个类型,但是无论我做什么,打字稿都会抱怨。我知道有办法解决这个问题,需要你的帮助。

export const getPropertiesArray = <T extends object, K extends keyof T>(data: T[], property: K) => {
    return data.map(item => item[property]).sort();
};
Run Code Online (Sandbox Code Playgroud)

这是我的函数,我需要添加一个默认值property,在本例中,默认值是“ID”。

javascript types typescript

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

如何为 git 别名设置命令行参数的默认值?

我正在尝试添加一个别名,.gitconfig如果没有命令行参数,该别名应解析为默认值。

lgs = "!f() { git log --stat $1; }; f" 
Run Code Online (Sandbox Code Playgroud)

git lgs应该打印最后一次提交的统计日志。 git lgs -2- 应打印最后 2 次提交的统计日志。(这个正在工作)。

我尝试了几种选择但没有结果

  • lgs = "!f() { git log --stat $1:=-1; }; f"
  • lgs = "!f() { git log --stat $1:-1; }; f"
  • lgs = "!f() { git log --stat $1=-1; }; f"

我怎样才能正确实施它?

git bash shell

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

如何过滤一组数字并取一定的间隔?

我有这种类型的数组。

[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24]
Run Code Online (Sandbox Code Playgroud)

过滤数组的要求是

  1. 省略每 4 项
  2. 取以下4样物品

并继续直到数组末尾。

最后它应该返回[5,6,7,8,13,14,15,16,21,22,23,24]

javascript arrays data-structures

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

检查字符串是否在语法上是真的

我正在尝试用正则表达式解决任务.给定带有字符串参数的函数.该字符串包含(){}<>[]大括号.我必须检查字符串是否在语法上是真的,我还应该计算括号嵌套.这是我的版本(不完整)`

const checkBraces = (str) => {
  const newStr = str.replace(/[^(){}<>[\]]+/gi, '');
  let answer = newStr.match(/\(+\)+|\<+\>+|\{+\}+|\[+\]+/g);
  console.log(answer);
}
Run Code Online (Sandbox Code Playgroud)

这是函数`的最小测试次数

checkBraces("---(++++)----") == 0
checkBraces("") == 0
checkBraces("before ( middle []) after ") == 0
checkBraces(") (") == 1
checkBraces("} {") == 1
checkBraces("<(   >)") == 1
checkBraces("(  [  <>  ()  ]  <>  )") == 0
checkBraces("   (      [)") == 1
Run Code Online (Sandbox Code Playgroud)

如果出现错误,则函数应返回1,否则为0.在我的函数中,我首先尝试替换所有,non-braces所以我有一个明确的字符串.现在我无法解决这个问题.

javascript string parsing

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

如何在nodejs中解码URL?

我正在尝试解码 URL 并URL使用nodejs.

const url = require('url');

const oldUrl = "https://tut.by/ad=%24%7Baccount.domain%7D";
const newUrl = url.parse(oldUrl, true).format();
Run Code Online (Sandbox Code Playgroud)

这是返回值newUrl

{ 
   auth: null
   hash: null
   host: "tut.by"
   hostname: "tut.by"
   href: "https://tut.by/?ad=%24%7Baccount.domain%7D"
   path: "/?ad=%24%7Baccount.domain%7D"
   pathname: "/"
   port: null
   protocol: "https:"
   query: {ad: "${account.domain}"}
   search: "?ad=%24%7Baccount.domain%7D"
   slashes: true 
}
Run Code Online (Sandbox Code Playgroud)

当我最终将其格式化为这样时:

{ 
   auth: null
   hash: null
   host: "tut.by"
   hostname: "tut.by"
   href: "https://tut.by/?ad=%24%7Baccount.domain%7D"
   path: "/?ad=%24%7Baccount.domain%7D"
   pathname: "/"
   port: null
   protocol: "https:"
   query: {ad: "${account.domain}"}
   search: "?ad=%24%7Baccount.domain%7D"
   slashes: true 
}
Run Code Online (Sandbox Code Playgroud)

它返回:

const formattedUrl …
Run Code Online (Sandbox Code Playgroud)

javascript url encoding decode node.js

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