我正在尝试迁移一个类组件以使用钩子运行,但是在尝试使用我的 history.push 更改 url 时遇到问题。
使用我的类组件,这是更改 url 的方法:
constructor(props) {
super(props)
this.state = {
// GeneralValidate: false,
paisValue: '',
paisError: true,
loading: false,
tipo: '',
};
}
.//more code here
this.props.history.push({
pathname: '/Pais',
state: { detail: 'hola' }
})
Run Code Online (Sandbox Code Playgroud)
并且工作正常,但在我的函数组件中,道具为空,我不知道如何使用 history.push。
const PaisForm = (props) => {
props.history.push("/Pais")
}
Run Code Online (Sandbox Code Playgroud)
我在做什么错?感谢和抱歉的问题!
我对reactjs中的ref有疑问。抱歉,这很愚蠢,但我仍在学习。好吧,问题是我正在尝试滚动以使用 ref 做出反应,但我的问题是因为我想使用多个引用。
我的代码是这样的:
import React, { Component } from "react";
import './App.css';
import { Row, Col,Image,ListGroup,Button,Jumbotron,Container} from 'react-bootstrap';
class App extends Component {
constructor(props) {
super(props)
this.myRef = React.createRef()
this.myRef2 = React.createRef() // Create a ref object
}
handleOnClick = (event) => {
//.current is verification that your element has rendered
window.scrollTo(2, this.myRef2.current.offsetTop)
}
render() {
return (
<div className="App">
<button onClick={this.handleOnClick}>Click me</button>
<Row>
<Col className="menu text-center" lg ={4}>
<div className="picture" >
<Image src={process.env.PUBLIC_URL + '/Images/picture.jpg'} roundedCircle />
</div> …Run Code Online (Sandbox Code Playgroud) 我正在尝试过滤我的数据以显示我的减速器并在第一次渲染中工作。但是,当我尝试使用分页更改页面时出现此错误:
× 重新渲染过多。React 限制渲染次数以防止无限循环 dispatch(GetFilteredData());
当我检查控制台时,我得到了 的无限循环console.log(data2),但我不知道为什么会这样。
这是我的派遣工作 PaisBody.js
import React, { useState, useEffect } from 'react';
import {useSelector,useDispatch} from 'react-redux';
import TablePagination from 'Layout/Table/TablePagination';
import {InsertPageCount,InsertData,GetFilteredData} from 'Redux/Actions/Pagination';
import GetApi from 'Url/index';
import {createStore} from 'redux';
import {Provider} from 'react-redux';
import allReducers from 'Redux/Reducers/Pagination';
import {TableFilter} from 'Layout/Table/TableFilter';
const PaisBody = (props) => {
const dispatch = useDispatch();
dispatch(InsertData(props.data));
dispatch(InsertPageCount(props.data.length));
dispatch(GetFilteredData());
const CurrentPage = useSelector(state => state.CurrentPage.page);
const data2 = useSelector(state => state.CurrentPage.filteredData);
console.log(data2);
return (
<div> …Run Code Online (Sandbox Code Playgroud)