小编Max*_*fen的帖子

箭头函数和括号()或{}或({})的使用

我无法理解为什么在箭头函数中我们不需要在({})大括号中包含箭头函数的文字,而不是在这个示例中只包含在单个()大括号中的文字.为什么?我曾在网上冲浪找到答案,但失败了.

还有为什么我们把参数放在双括号({})中而不仅仅是()

const FilterLink = ({ filter, children }) => (
   <NavLink
       to={filter === 'SHOW_ALL' ? '/' : `/${ filter }`}
       activeStyle={ {
       textDecoration: 'none',
           color: 'black'
       }}
   >
       {children}
   </NavLink>
)
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 reactjs

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

反应。无法获取 DOM 中的组件元素

我正在尝试为div容器ed插入 innerHTML 。但是在 React 渲染它之后我无法得到它。我知道这是渲染阶段的问题,因为我得到null了这个div容器。我做错了什么?

class Test extends React.Component {
  render() {
    return (
      <div> 
        <div id='ed'>
        <p>{this.props.prop.text}</p>
        </div> 
        {document.querySelector('#ed').innerHTML = this.props.prop[1]} // this the problem
      </div> 
    );
  }
}

ReactDOM.render(
  <Test prop={store.getState()} />,
  document.getElementById('root')
);
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

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

如何限制git跟踪/更新本地更改?

所以,我学习了git函数,但是无法使文件中的README.mdgit branch更新文件执行.gitignore.

我已经编写了下一个,.gitignore但在推送服务器上没有帮助.

// .gitignore
# readme
README.md
LICENSE
Run Code Online (Sandbox Code Playgroud)

javascript git github gitignore

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

反应.如何用以前的状态更新状态?

我正在尝试更新状态,基于之前的状态(array of objects),新的传入值为fase object.但由于某些原因,它不会发生......

我做错了什么?我的代码:

   handleCommentSubmit = (newEmployer) => {
       console.log('handleCommentSubmit BEFORE', this.state.employers, newEmployer); // array(5)
       this.setState((prevState, newEmployer) => { 
         employers: prevState.employers + newEmployer
       });
       console.log('handleCommentSubmit AFTER', this.state.employers); // still array(5)
   }
Run Code Online (Sandbox Code Playgroud)

我的日志:

handleCommentSubmit BEFORE (6) [{…}, {…}, {…}, {…}, {…}, {…}], newEmployer: {first_name: "sdfsdf", last_name: "sdfsdf", birth_date: "123123-03-12", salary: "123123123"}
handleCommentSubmit AFTER (6) [{…}, {…}, {…}, {…}, {…}, {…}]
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

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

是否可以在 Redux/React 中分离组件的表示和逻辑?

如 redux -> https://redux.js.org/basics/usage-with-react 的官方文档所示,逻辑和预设必须捆绑在一起。

问题是 - 我们不能将它们分开以使我们的代码更清晰,这是真的吗?

例如来自官方 redux.js.org 文档的一些组件。所以,逻辑和预制放在一起,看起来不太好和清晰:

import React from 'react'
import { connect } from 'react-redux'
import { addTodo } from '../actions'
?
let AddTodo = ({ dispatch }) => {
  let input
?
  return (
    <div>
      <form
        onSubmit={e => {
          e.preventDefault()
          if (!input.value.trim()) {
            return
          }
          dispatch(addTodo(input.value))
          input.value = ''
        }}
      >
        <input
          ref={node => {
            input = node
          }}
        />
        <button type="submit">
          Add Todo
        </button>
      </form>
    </div>
  )
}
AddTodo = connect()(AddTodo) …
Run Code Online (Sandbox Code Playgroud)

reactjs redux

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

如何在一个特定对象中转换对象数组?

所以,在我上次的采访中,我有一个非常小的但很难完成的任务.我只是想知道如何解决它.我认为我们需要在这个任务中实现递归,但我不清楚它.

任务:

let arr = [{name: 'width', value: 300}, {name: 'height', value: 100}];
Run Code Online (Sandbox Code Playgroud)

在输出时我们必须:

let obj = {width:300, height: 100};
Run Code Online (Sandbox Code Playgroud)

数组对象的数量可以是无穷大.

PS如果您向我提供有关如何完成此任务的知识链接,我将很高兴.

谢谢.

javascript arrays recursion

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

反应.我在className中的ternar运算符有什么问题?

所以,我在一个特殊条件下有一个span带有classNames触发器的简单标签,但由于某些原因我class的内容DOM没有出现.我class没有任何相似之处<span class>...</span>.

我的标签:

      <span key={total} className={'total' + ' ' + total === 0 ? 'total--empty' : ' '}>
        {total ? total : 0}
      </span>
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

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

Redux /反应。实施后,CombineReducers无法获取应用程序状态

将两个reducersEditButtonTodoApp)组合在一起后,我的应用每次都崩溃。在此之前,当我仅使用一个减速器时,TodoApp我就没有任何问题reducers。但是现在我无法弄清楚出什么问题了,因为每次我遇到以下map功能时都会出错component。错误“ TypeError:无法读取未定义的属性'map'”。

那么,我忘记了什么?我也无法在的嵌套组件或容器中获取状态App。这也很奇怪,但是例如,App我可以通过console.log()做到这一点。

/ *减速器* /

import { combineReducers } from 'redux'
import { ADD_TODO, EDIT_TODO, DELETE_TODO, FILTER_TODO_UP, FILTER_TODO_DOWN } from '../Variables/Variables'

const initialState = {
    todos: []
}

function EditButton(state, action) {
    if (typeof state === 'undefined') {
        return 'Edit';
    }

    switch (action.type) {
        case EDIT_TODO:
            return state = "Edit" ? "Done" : "Edit"
        default:
            return state
    }
}

function TodoApp(state, …
Run Code Online (Sandbox Code Playgroud)

reactjs redux react-redux

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

为什么在新的react-router-dom &lt;Redirect /&gt;中不会在setTimout内部触发?

因此,我尝试在注销页面和重定向到主网站页面之间进行一些延迟。但是,我陷入了问题,该反应路由器-DOM <Redirect/>方法并不想火的时候,我们把它里面setTimeout()setInterval()

因此,如果我们将其从计时器中解开,<Redirect/>它将正常工作。

问题是什么,有什么建议吗?

我的代码:

import React, { Component } from 'react';
import { Redirect } from 'react-router-dom';
import axios from 'axios';

class LogoutPage extends Component {
    constructor(props) {
        super(props);
        this.state = {
            navigate: false
        }
    }

    componentDidMount(e) {
        axios.get('http://localhost:3016/logout')
        .then(
            this.setState({
                navigate: true
            }),
        )
        .catch(err => {
            console.error(err);
        });

        if (this.state.navigate) {
            setTimeout(() => {
                return <Redirect to="/employers" />
            }, 2000);
        }
    };

    render() {
        if (this.state.navigate) {
            setTimeout(() => …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-dom react-router-v4 react-router-dom

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

为什么React 16中的碎片比容器更好?

所以,我学习React in Depth,现在我正在研究React Fragments.正如官方文档https://reactjs.org/docs/fragments.html中所述,Fragments是返回多个元素的非常有趣的方式.但我无法弄清楚它是否比通常的组件和通过它的孩子转移更好?

javascript reactjs

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

如何验证括号'((()))''?

我上次接受下一个任务时遇到了问题:

制作将验证括号计数的功能,如果每个打开括号将具有关闭括号(如()(((())))) - 验证必须是true,以其他方式(如(()(()()))) - 必须false.

我的意思是开括号的数量必须等于近括号的数量.

如果有人可以解释我必须如何工作,我会很高兴.谢谢!

function validator(brackets) {
  ...// some code
} 

const goodBrackets = '(((())))';
const badBrackets = '(()())))';
const veryBadBrackets = '(()())()))';

validator(goodBrackets);
validator(badBrackets);
validator(veryBadBrackets);
Run Code Online (Sandbox Code Playgroud)

javascript algorithm

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