关于使用ReactJs中的API实时同步按钮状态和react同步调用接口的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于IDEA远程代码实时同步(可以自动实时同步)、javascript–
关于使用React Js中的API实时同步按钮状态和react 同步调用接口的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于IDEA 远程代码实时同步(可以自动实时同步)、javascript – React App:使用React服务器启动API服务器、React Context API全局状态不会在React中的不同路由之间更新、React-使用react-move实现从下到上进入的动画 +使用react-intl实现国际化等相关知识的信息别忘了在本站进行查找喔。
本文目录一览:- 使用React Js中的API实时同步按钮状态(react 同步调用接口)
- IDEA 远程代码实时同步(可以自动实时同步)
- javascript – React App:使用React服务器启动API服务器
- React Context API全局状态不会在React中的不同路由之间更新
- React-使用react-move实现从下到上进入的动画 +使用react-intl实现国际化
使用React Js中的API实时同步按钮状态(react 同步调用接口)
如何解决使用React Js中的API实时同步按钮状态?
所以我有两个API,一个是Post API,我链接到了Toggle按钮,每当单击按钮时,它都会向Post API发送1或0值,而我还有其他GET API,我可以从其中获取值的状态我正在使用相同的按钮来检查天气是0还是1。 问题是我的代码可以工作,但是无法同步,因为当我单击按钮时,它会通过post API更新状态值,但先前的GET Request会使它再次回到先前的状态。因此渲染按钮会闪烁几次,然后稳定下来。代码如下。任何解决方案将不胜感激。提前致谢。 附言在componentDidMount()上,我正在调用GET请求,并且handleChange链接到按钮
class Test extends React. Component {
constructor(props) {
super(props);
this. State = {
checked: false,value:bool,}
this.handleChange = this.handleChange.bind(this);
}
componentDidMount() {
this.intervalId = setInterval(()=> this.loadData(),1000);
this.loadData();
}
componentwillUnmount() {
clearInterval(this.intervalId);
}
async loadData() {
const headers = {
''api-key'': ''key'',};
try {
const response = await fetch(''url'',{ headers })
const json = await response.json();
const valueUp = json.data ;
if( valueUp ===1 ) {
this.setState({value: valueUp,checked: true})
}
else if (valueUp === 0) {
this.setState({value: valueUp,checked: false})
}
}
catch (err){ console.log(err);}
}
handleChange() {
if (this.state.value === 0) {
this.setState({ value:1,checked: true },() => {
this.afterSetStateFinished();
})
}
else if (this.state.value === 1) {
this.setState({ value:0,checked: false },() => {
this.afterSetStateFinished();
})
}
};
afterSetStateFinished(){
const article = {
"body": this.state.value
}
const headers = {
''api-key'': ''key'',};
axios.post(''url'',article,{ headers })
.then(function(response) {console.log(response);
})
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
IDEA 远程代码实时同步(可以自动实时同步)
前言
开发时一般的平台都是 windows,但 windows 对开发极其不友好,一般都会在本地开启虚拟机,安装上 linux 环境进行项目的部署测试。下面介绍一种 windows 主机与 linux 虚拟机代码同步的方法。这个工具适用于 jerbrains 公司旗下的很多产品,比如 idea、webstrom、phpstrom 等。但是要注意你安装的 IDE 必须是专业版的,社区版的 IDE 是没有这个代码同步功能的哦!
前提条件:
在 windows 与 linux 系统下都有着项目的同一份代码。
比如:
我 Linux 系统项目代码地址:/data/projects/
windows 系统项目地址:D:/data/projects/
这两个文件夹里的项目文件要完全一样哦。
配置步骤:
1、打开 windows 主机的 idea(我这里是 PhpStorm),打开上面 windows 系统项目地址:D:/data/projects/,然后选择 tools->deployment->brower remote host。如下图:
2、点击右上方的三个点,新建一个连接。如下图:
3、选择添加服务器连接的类型:这里选择 SFTP,如下图:、
然后点击确定。
4、然后依次填写服务器信息:具体如下图:
5、很关键的一步:切换到 Mapping 面板:
6、代码修改后自动上传配置:
以上就配置完成了。然后在本地项目新建文件、修改文件、删除文件等操作,都会自动实时同步到 Linux 系统上了。
具体不清楚的可以查看我的博客:http://blog.huanghui.xyz
javascript – React App:使用React服务器启动API服务器
我正在研究一个非常简单的
我正在使用
但我想知道是否有办法使用
我用Google搜索并环顾四周,但我似乎可以找到任何相关信息(也不确认或反驳).
有没有人对此有任何意见?
(我知道这不是一个正确的问题,但我似乎无法找到任何信息来关闭唠叨的奇迹)
解决方法:
有一种方法可以启动API服务器并做出反应.在我的案例server.js中的快速主文件中.您需要安装webpack-dev-middleware和webpack-hot-middleware.
// server.js
import path from ''path'';
import express from ''express'';
import webpack from ''webpack'';
import webpackDevMiddleware from ''webpack-dev-middleware'';
import webpackHotMiddleware from ''webpack-hot-middleware'';
import config from ''./webpack.config'';
const app = express(),
disT_DIR = path.join(__dirname, ''client''),
HTML_FILE = path.join(disT_DIR, ''index.html''),
compiler = webpack(config),
isDevelopment = process.env.NODE_ENV === ''development'';
if (isDevelopment) {
app.use(webpackDevMiddleware(compiler, {
publicPath: config.output.publicPath,
}));
app.use(webpackHotMiddleware(compiler));
} else {
app.use(express.static(disT_DIR));
}
app.get(''/'', (req, res) => res.sendFile(HTML_FILE));
app.get(''*'', (req, res) => res.redirect(301, ''/''));
app.listen(process.env.PORT || 4200);
然后在您的webpack.config.js中,您可以按照以下设置进行操作:
const path = require(''path'');
const webpack = require(''webpack'');
process.env.NODE_ENV = process.env.NODE_ENV || ''development'';
module.exports = {
entry: [
''webpack-hot-middleware/client'',
''./app/app.jsx'',
],
externals: {
jquery: ''jQuery'',
''react/addons'': ''react'',
''react/lib/ExecutionEnvironment'': ''react'',
''react/lib/ReactContext'': ''react'',
},
output: {
path: path.resolve(__dirname, ''client''),
filename: ''bundle.js'',
publicPath: ''/'',
sourceMapFilename: ''bundle.map'',
},
devtool: process.env.NODE_ENV === ''production''
? undefined : ''cheap-module-eval-source-map'',
resolve: {
modules: [''node_modules'', ''./app/components''],
extensions: [''.js'', ''.jsx''],
},
module: {
rules: [
{
test: /(\.js$|\.jsx$)/,
exclude: /(node_modules|bower_components)/,
use: [
{
loader: ''babel-loader'',
options: {
presets: [''react'', ''es2015'', ''stage-0'', ''airbnb''],
},
},
],
},
{
test: /\.scss$/,
use: [''style-loader'', ''css-loader'', ''sass-loader''],
},
{
test: /\.(eot|svg|ttf|woff|woff2)(\?v=\d+\.\d+\.\d+)?$/,
use: {
loader: ''file-loader'',
options: {
name: ''[name].[ext]''
}
}
}
],
},
plugins: [
new webpack.optimize.OccurrenceOrderPlugin(),
new webpack.HotModuleReplacementPlugin(),
new webpack.NoEmitOnErrorsPlugin(),
new webpack.ProvidePlugin({
$: ''jquery'',
jQuery: ''jquery'',
}),
new webpack.optimize.UglifyJsPlugin({
sourceMap: true,
minimize: true,
compressor: {
warnings: false,
},
}),
new webpack.DefinePlugin({
''process.env'': {
NODE_ENV: JSON.stringify(process.env.NODE_ENV)
},
}),
],
};
然后在你的package.json脚本中:
// package.json
"scripts": {
"build": "webpack",
"postinstall": "npm run build",
"start": "babel-node server.js",
"start:dev": "nodemon -e js --exec babel-node -- ./server.js",
"test": "karma start"
}
现在,当您启动Express服务器时,您的API和react将一起运行.
总结
以上是小编为你收集整理的javascript – React App:使用React服务器启动API服务器全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
原文地址:https://codeday.me/bug/20190701/1348393.html
React Context API全局状态不会在React中的不同路由之间更新
如何解决React Context API全局状态不会在React中的不同路由之间更新?
当我从Page1递增状态时,它会为Page1更新。但是当我进入Page2时状态再次变为0。我没有从Page1获得更新状态。有什么方法可以创建跨路由的全局状态?
context.js
import React,{ useState } from "react";
export const Context = React.createContext();
export const ContextProvider = ({ children }) => {
const [state,setstate] = useState(0);
return (
<Context.Provider value={{ state,setstate }}>{children}</Context.Provider>
);
};
Page1.js
const Page1 = () => {
const { state,setstate } = useContext(Context);
console.log("Page1: ",state);
return (
<div>
<h1>PAGE 1</h1>
{state}
<button onClick={() => setstate(state + 1)}>INC</button>
</div>
);
};
Page2.js
const Page2 = () => {
const { state,setstate } = useContext(Context);
return (
<div>
<h1>PAGE 2</h1>
{state}
<button onClick={() => setstate(state + 1)}>INC</button>
</div>
);
};
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
React-使用react-move实现从下到上进入的动画 +使用react-intl实现国际化
一、使用react-move实现从下到上进入的动画
1.引入:
import { Animate } from ''react-move'';
2.规定要添加动画的元素的useState:
const [show, setShow] = useState(false);
useEffect(() => {
setShow(true);
}, []);
3.元素代码:
<Animate
start={{
opacity: 0,
y: index===0 ? 100 : 300
}}
update={() => ({
opacity: 1,
y: [show ? 0 : index===0 ? 100 : 300],
timing: { duration: 600, ease: easeQuadInOut, delay: index===0 ? 1000 : 2000 }
})}
>
{state => (
<div className=''section-joinus__select'' key={item.country} style={{
transform: `translateY(${state.y}%)`,opacity: 1
}}>
<div className=''country''><i className=''i-pos''><Location/></i><span>{item.country}</span><i className=''i-up''><ArrowUp/></i></div>
<div className=''option'' style={{height: index===0 ? options ? ''0'': ''200px'': options? ''200px'': ''0''}}>
<ul>
<li>{item.work1}</li>
<li>{item.work2}</li>
</ul>
<button>{item.btntxt}</button>
</div>
</div>
)}
</Animate>
4.插件2019-09-19官网
https://www.npmjs.com/package/react-move
二、国际化
1.安装依赖
npm的话命令是:npm install react-intl --save
yarn的话命令是:yarn add react-intl --save
2.src文件目录下新建locale目录,新增中英文两个js文件:
一个用来规定英文,一个规定中文:
const en_US = {
''component.about.btn'': ''英文示例'',
}
export default en_US;
const zh_CN = {
''component.about.btn'': ''中文示例'',
}
export default zh_CN;
前面是id,用来在组件中引用,后面是对应的文字。
3.app.js中引入包裹的组件与两个js语言文件,并进行当前语言环境的判断:
import { IntlProvider } from ''react-intl'';
import zh_CN from ''../../locales/zh-CN'';
import en_US from ''../../locales/en-US'';
const App = () => {
const locale = navigator.language.split(''_'')[0] || ''en-US'';
return (
<React.Fragment>
<IntlProvider locale={locale === ''zh-CN'' ? ''zh'' : ''en''} messages={locale === ''zh-CN'' ? zh_CN : en_US}>
<Nav />
<div className="page-content">
<About />
</div>
<Footer />
</IntlProvider>
</React.Fragment>
);
};
export default App;
4.组件中使用FormattedMessage ,规定属性id即可:
import { FormattedMessage } from ''react-intl'';
5.官网npm地址:
https://www.npmjs.com/package/react-intl
关于使用React Js中的API实时同步按钮状态和react 同步调用接口的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于IDEA 远程代码实时同步(可以自动实时同步)、javascript – React App:使用React服务器启动API服务器、React Context API全局状态不会在React中的不同路由之间更新、React-使用react-move实现从下到上进入的动画 +使用react-intl实现国际化等相关知识的信息别忘了在本站进行查找喔。
本文标签: