我在用着react。Material-ui是为了Cards. 因为Grid我正在使用 CSS 网格布局。到目前为止,它看起来像这样:
但我的目标是这样的:
我有两个问题:
我想让所有这些都具有cards相同的高度(415px)。我尝试了 height: 415px.BeerListingScroll-info-box但它不起作用。
瓶子和小桶的图像尺寸不同 [小桶 (80 像素 x 160 像素) 与瓶子 (80 像素 x 317 像素)]。有什么办法可以让它们在渲染尺寸上更加相似吗?
-
代码:
BeerListingScroll
import React, { Component } from 'react';
import ReduxLazyScroll from 'redux-lazy-scroll';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
import { fetchBeers } from '../../actions/';
import BeersListItem from '../../components/BeersListItem';
import ProgressIndicator from '../../components/ProgressIndicator';
import './style.css';
class BeerListingScroll extends Component …Run Code Online (Sandbox Code Playgroud) 我有这样的代码.如何使用JavaScript中的函数式编程以更干净,更优雅的方式编写它?我想摆脱嵌套的三元表达式.有任何想法吗?
props => ({
iconColor: props.isPriority ? (props.isCompleted ? variables.color.lightpurple : variables.color.purple ) : variables.color.gray3,
iconName: props.isPriority ? 'star-full' : 'star-empty',
}))
Run Code Online (Sandbox Code Playgroud)
这是该代码的其余部分:
编辑:
const enhance: React$HOC<*, InitialProps> = compose(
withProps(props => ({
iconColor: props.isPriority ? (props.isCompleted ? variables.color.lightpurple : variables.color.purple) : variables.color.gray3,
iconName: props.isPriority ? 'star-full' : 'star-empty',
}))
)
Run Code Online (Sandbox Code Playgroud) 我有这样的 action.js 文件:
import axios from 'axios';
export const SEARCH_TERM = 'SEARCH_TERM';
export const SAVE_SEARCH = 'SAVE_SEARCH';
export function search(query) {
const githubApi = `https://api.github.com/search/repositories?q=${query}&sort=stars&order=desc`;
const request = axios.get(githubApi);
return (dispatch) => {
request.then(({ data: dataFromGithub }) => {
dispatch({ type: SEARCH_TERM, payload: query });
dispatch({ type: SAVE_SEARCH, payloadOne: query, payloadTwo: dataFromGithub });
});
};
}
Run Code Online (Sandbox Code Playgroud)
使用减速器,我将用户输入的所有搜索词保存到 redux 中。然后我向 github api 发出请求并保存响应数据。
现在我遇到了一个问题,我真的不知道如何处理。
我如何编写代码来检查用户之前是否已经搜索过此查询,在这种情况下,我的应用程序不会向 github api 触发该请求。
我该如何做到这一点以及我应该将这个逻辑放在哪里?有任何想法吗?
编辑:感谢@klugjo!由于他的提示,我编写了确实有效的代码。
import React, { Component } from 'react';
import { connect } …Run Code Online (Sandbox Code Playgroud) 只要用户输入,我就不想发出请求.我的代码应该限制请求,以便当用户快速键入时,它将使用最新的输入值而不是许多输入一个请求.
现在,当我输入"test"时,它会触发4个不同的请求:
所以我找到了lodash _.debounce和_.throttle([ https://lodash.com/docs/4.17.4#debounce])但是我真的不明白如何将它添加到我的代码中.谁能帮我?
我的代码:
import React, { Component } from 'react';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
import './style.css';
import { search } from '../../actions/';
class SearchBar extends Component {
constructor(props) {
super(props);
this.state = { searchTerm: '' };
}
startSearch(query) {
const storedTerms = this.props.searchedTerm;
let foundDuplicate = false;
if (storedTerms.length === 0 && query) {
return this.props.search(query);
}
if (storedTerms.length !== 0 && query) { …Run Code Online (Sandbox Code Playgroud) 如何在ESLint中避免此错误?我应该以不同的方式编写此代码吗?我无法更改ESLint配置,我应该有0个错误...
import React from 'react';
import logo from './logo.svg';
import './style.css';
import SearchBar from '../SearchBar';
import GithubDataTable from '../GithubDataTable';
const App = props => (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<h1 className="App-title">The Task</h1>
</header>
<div>
<SearchBar />
<GithubDataTable />
</div>
</div>
);
export default App;
Run Code Online (Sandbox Code Playgroud)
我正在从数据库加载 250 个元素,我需要img为每个元素进行渲染。
不幸的imgs是,有两种不同的尺寸:
我无法对其进行硬编码,因为我不知道这些图像元素将以什么顺序来自服务器。
这是我的 Minimal, Complete, and Verifiable example
body {
margin: 40px;
}
.wrapper {
display: grid;
grid-gap: 10px;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
background-color: #fff;
color: #444;
}
.box {
background-color: #444;
color: #fff;
border-radius: 5px;
padding: 20px;
font-size: 150%;
}
.img {
width: 50%;
}Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html>
<html>
<body>
<h2>HTML Image</h2>
<div class="wrapper">
<img class="img" src="https://res.cloudinary.com/dfe57evk4/image/upload/v1521215919/2_paabuv.png" alt="Mountain View">
<img class="img" src="https://res.cloudinary.com/dfe57evk4/image/upload/v1521215916/keg_quozwj.png" alt="Mountain View">
</div>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
如何在不失真的情况下使它们的尺寸相似? …
javascript ×6
reactjs ×3
css ×2
api ×1
eslint ×1
html ×1
lodash ×1
material-ui ×1
node.js ×1
react-native ×1
react-redux ×1
redux-thunk ×1