Reactjs 您的工具栏不可见吗?
在第三方库的帮助下,我创建了一个React进度条Reactjs 您的工具栏不可见吗?,reactjs,progress-bar,Reactjs,Progress Bar,在第三方库的帮助下,我创建了一个React进度条 import React from "react"; import { css } from "@emotion/core"; import ClipLoader from "react-spinners/ClipLoader"; // Can be a string as well. Need to ensure each key-value pair ends with ;
import React from "react";
import { css } from "@emotion/core";
import ClipLoader from "react-spinners/ClipLoader";
// Can be a string as well. Need to ensure each key-value pair ends with ;
const override = css`
display: block;
margin: 0 auto;
border-color: red;
`;
class AwesomeComponent extends React.Component {
constructor(props) {
super(props);
this.state = {
loading: true
};
}
render() {
return (
<div className="sweet-loading">
<ClipLoader
css={override}
size={150}
color={"#123abc"}
loading={this.state.loading}
/>
</div>
);
}
}
export default AwesomeComponent;
从“React”导入React;
从“@emotion/core”导入{css};
从“react spinners/ClipLoader”导入ClipLoader;
//也可以是字符串。需要确保每个键值对以结束;
const override=css`
显示:块;
保证金:0自动;
边框颜色:红色;
`;
类AwesomeComponent扩展了React.Component{
建造师(道具){
超级(道具);
此.state={
加载:正确
};
}
render(){
返回(
);
}
}
导出默认组件;
然后导入到index.js文件中
import AwesomeComponent from './awesomeComponent.js';
ReactDOM.render(
<Provider store={store}>
<BrowserRouter>
<App />
<AwesomeComponent />
</BrowserRouter>
</Provider>,
document.getElementById("root")
);
从'./AwesomeComponent.js'导入AwesomeComponent;
ReactDOM.render(
,
document.getElementById(“根”)
);
在我的应用程序中,当从nodejs api加载数据或单击任何按钮时,我希望显示此progressbar。但在与progressbar相关的GUI中看不到任何内容。如果您使用基于类的组件进行
react promise tracker
,则需要使用HOCpromiseTrackerHoc
:
import React from "react";
import { css } from "@emotion/core";
import ClipLoader from "react-spinners/ClipLoader";
import { promiseTrackerHoc } from "react-promise-tracker"; // <--------- HERE
// Can be a string as well. Need to ensure each key-value pair ends with ;
const override = css`
display: block;
margin: 0 auto;
border-color: red;
`;
class AwesomeComponent extends React.Component {
constructor(props) {
super(props);
this.state = {
loading: true
};
}
render() {
return (
this.props.promiseInProgress && // <--------- HERE
<div className="sweet-loading">
<ClipLoader
css={override}
size={150}
color={"#123abc"}
loading={this.state.loading}
/>
</div>
);
}
}
export default promiseTrackerHoc(AwesomeComponent); // <--------- HERE
从“React”导入React;
从“@emotion/core”导入{css};
从“react spinners/ClipLoader”导入ClipLoader;
从“react promise TrackerHoc”导入{promiseTrackerHoc};// 如果您正在为react promise tracker
使用基于类的组件,则需要使用HOCpromiseTrackerHoc
:
import React from "react";
import { css } from "@emotion/core";
import ClipLoader from "react-spinners/ClipLoader";
import { promiseTrackerHoc } from "react-promise-tracker"; // <--------- HERE
// Can be a string as well. Need to ensure each key-value pair ends with ;
const override = css`
display: block;
margin: 0 auto;
border-color: red;
`;
class AwesomeComponent extends React.Component {
constructor(props) {
super(props);
this.state = {
loading: true
};
}
render() {
return (
this.props.promiseInProgress && // <--------- HERE
<div className="sweet-loading">
<ClipLoader
css={override}
size={150}
color={"#123abc"}
loading={this.state.loading}
/>
</div>
);
}
}
export default promiseTrackerHoc(AwesomeComponent); // <--------- HERE
从“React”导入React;
从“@emotion/core”导入{css};
从“react spinners/ClipLoader”导入ClipLoader;
从“react promise TrackerHoc”导入{promiseTrackerHoc};// 在本例中,您可以看到如何通过单击按钮来更改微调器的可见性,该微调器刚刚更改了本地状态
在本例中,您可以看到如何更改微调器的可见性,只需单击按钮即可更改本地状态
usePromiseTracker是什么?也许您需要使用函数组件而不是class@RamanNikitsenka是的,但很抱歉,代码中没有使用该选项。我还编辑了代码库。我已经创建了一个用于处理上面代码的示例,我在那里看到了微调器。您能描述一下您期望的行为吗?@SudobhJoshi我已经更新了示例并添加了更改状态的按钮,您可以将此添加为答案。usePromiseTracker是react hook吗?也许您需要使用函数组件而不是class@RamanNikitsenka是的,但很抱歉,代码中没有使用该选项。我还编辑了代码库。我已经创建了一个用于处理上面代码的示例,我在那里看到了微调器。您能描述一下您期望的行为吗?@SudobhJoshi我已经更新了示例并添加了更改状态的按钮,您可以将此添加为答案。感谢您的回答,假设我在代码库中根本不使用react-promise-tracker
,在这种情况下,只有这么多代码无法工作?实际上,我试图实现的是,每个按钮/链接点击或数据加载都应该自动支持微调器。你回答给出第24:9行:'props'没有定义没有undef
@SubodhJoshi,这是微调器/加载器的代码这只是一次代码,然后你只需要使用trackPromise
,无论你在哪里需要显示loader,你都必须把它放进去,很抱歉我错过了道具之前的这个,谢谢我是rectjs的新手。在JSF中,我们已经添加了一个公共位置微调器,它将适用于所有其他页面,所以我一直在寻找相同的页面。@SubodhJoshi,请检查一下这一次,我认为这将消除您的所有疑虑。因此,您的意思是在编写组件后,我必须从“react promise tracker”导入{trackPromise}
并在每个js文件中添加promiseTrackerHoc
,我想在其中显示微调器?感谢您的回答,假设我根本不在代码库中使用react promiseTrackerHoc
,在这种情况下,只有这么多代码不起作用?实际上,我试图实现的是,每个按钮/链接点击或数据加载都应该自动支持微调器。你回答给出第24:9行:'props'没有定义没有undef
@SubodhJoshi,这是微调器/加载器的代码这只是一次代码,然后你只需要使用trackPromise
,无论你在哪里需要显示loader,你都必须把它放进去,很抱歉我错过了道具之前的这个,谢谢我是rectjs的新手。在JSF中,我们已经添加了一个公共位置微调器,它将适用于所有其他页面,所以我一直在寻找相同的页面。@SubodhJoshi,请检查一下这一次,我认为这将消除您的所有疑虑。因此,您的意思是在编写组件后,我必须从“react promise tracker”导入{trackPromise}
并在每个js文件中添加promiseTrackerHoc
,我想在其中显示微调器?