我无法理解为什么在箭头函数中我们不需要在({})大括号中包含箭头函数的文字,而不是在这个示例中只包含在单个()大括号中的文字.为什么?我曾在网上冲浪找到答案,但失败了.
还有为什么我们把参数放在双括号({})中而不仅仅是()?
const FilterLink = ({ filter, children }) => (
<NavLink
to={filter === 'SHOW_ALL' ? '/' : `/${ filter }`}
activeStyle={ {
textDecoration: 'none',
color: 'black'
}}
>
{children}
</NavLink>
)
Run Code Online (Sandbox Code Playgroud) 我正在尝试为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) 所以,我学习了git函数,但是无法使文件中的README.mdgit branch更新文件执行.gitignore.
我已经编写了下一个,.gitignore但在推送服务器上没有帮助.
// .gitignore
# readme
README.md
LICENSE
Run Code Online (Sandbox Code Playgroud) 我正在尝试更新状态,基于之前的状态(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) 如 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) 所以,在我上次的采访中,我有一个非常小的但很难完成的任务.我只是想知道如何解决它.我认为我们需要在这个任务中实现递归,但我不清楚它.
任务:
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如果您向我提供有关如何完成此任务的知识链接,我将很高兴.
谢谢.
所以,我在一个特殊条件下有一个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) 将两个reducers(EditButton和TodoApp)组合在一起后,我的应用每次都崩溃。在此之前,当我仅使用一个减速器时,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) 因此,我尝试在注销页面和重定向到主网站页面之间进行一些延迟。但是,我陷入了问题,该反应路由器-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
所以,我学习React in Depth,现在我正在研究React Fragments.正如官方文档https://reactjs.org/docs/fragments.html中所述,Fragments是返回多个元素的非常有趣的方式.但我无法弄清楚它是否比通常的组件和通过它的孩子转移更好?
我上次接受下一个任务时遇到了问题:
制作将验证括号计数的功能,如果每个打开括号将具有关闭括号(如()或(((())))) - 验证必须是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 ×9
reactjs ×8
redux ×2
algorithm ×1
arrays ×1
ecmascript-6 ×1
git ×1
github ×1
gitignore ×1
react-dom ×1
react-redux ×1
recursion ×1