我有以下for循环,它遍历一个字符串列表并存储每个单词的第一个字符StringBuilder
.我想知道如何将其转换为lambda表达式
StringBuilder chars = new StringBuilder();
for (String l : list) {
chars.append(l.charAt(0));
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试输入传递给 Row 函数的以下两个参数。
//https://github.com/bvaughn/react-window
import * as React from "react";
import styled from "styled-components";
import { FixedSizeList as List } from "react-window";
import AutoSizer from "react-virtualized-auto-sizer";
const StyledSection = styled.section`
width: 100vw;
height: 100vh;
background: #C0C0C0;
`;
const Row = ({ index, style }) => (
<div className={index % 2 ? 'ListItemOdd' : 'ListItemEven'} style={style}>
Row {index}
</div>
);
const Scroller = () => {
return (
<StyledSection>
<AutoSizer>
{({ height, width }) => {
return (
<List height={height} width={width} …
Run Code Online (Sandbox Code Playgroud) 我知道为尚未挂载的组件设置状态时会引发错误.这解释了我从使用setState函数得到的错误,而不是明确地直接设置状态.
import React, {Component} from 'react';
class SearchBar extends Component {
constructor(props) {
super(props);
this.state = {term: ''}; // -> seems to be the agreed means to set initial state
// this.setState({term: ''}); // -> generates an error
}
render() {
return (
<div>
<input onChange={event => this.setState({term: event.target.value})}/>
Value of the input: {this.state.term}
</div>
);
}
}
Run Code Online (Sandbox Code Playgroud)
我取消注释第二行this.setState({term:''})时得到的错误是:
警告:setState(...):只能更新已安装或安装的组件.这通常意味着您在已卸载的组件上调用了setState().这是一个无操作.请检查该组件的代码.
我知道如何防止错误,只需明确设置状态而不告诉React有关它的任何内容我已经看到github问题在讨论bug:Github问题#3878我想知道的是为什么不能反应出来?如果从构造函数中调用setState,它知道这是第一次使用它吗?我可能太简单了,但如果有人有一个很好的技术答案,为什么不呢?
我有看起来像这样的旧 CSS:
.btn_1 {
color: #fff;
background: #004dda;
display: inline-block;
}
.btn_1:hover {
background-color: #FFC107;
color: #222 !important;
}
.btn_1.full-width {
display: block;
width: 100%;
}
Run Code Online (Sandbox Code Playgroud)
我想迁移到在 React 中使用样式组件(CSS-in-JS 样式)。
到目前为止,这是我的迁移:
.btn_1 {
color: #fff;
background: #004dda;
display: inline-block;
:hover {
background-color: #FFC107;
color: #222 !important;
}
}
Run Code Online (Sandbox Code Playgroud)
但是在样式化组件中是否有针对选择器的解决方案,.btn_1.full-width
或者我应该为此创建另一个 CSS 块?
我认为做这样的事情(或更好)会很酷:
.btn_1 {
${this}.full-width {
display: block;
width: 100%;
}
}
Run Code Online (Sandbox Code Playgroud)
但我似乎无法在文档中找到解决方案。你知道这是怎么可能的,或者这甚至是一个好主意吗?
我试图了解for
与Scala相关的理解Maps
.我有以下代码,我的意图是打破键值对,对值执行某些操作并返回修改后的值Map
.我使用正确的功能还是应该使用其他功能?
val kvpair = Map("a" -> 1, "b" -> 2, "c" -> 3)
def multiplyValues(map: Map[Char, Int]) = {
for {
char <- map._1
value <- map._2 * 2
} yield (char, value )
}
Run Code Online (Sandbox Code Playgroud) collections ×2
reactjs ×2
constructor ×1
css ×1
java ×1
java-8 ×1
java-stream ×1
javascript ×1
lambda ×1
react-window ×1
scala ×1
state ×1
typescript ×1