Articles of reactjs

Redux – 通过键在状态数组中查找对象并更新其另一个键

我正在使用后端的NodeJS和前端的React + Redux的CRUD应用程序。 这是一个如何运作的快速模式: 添加一个项目 用户inputpost的标题 然后将标题发送到在NodeJS中获取POST路由并通过主体发送标题的调度 在NodeJS路由中,我添加了一个新的项目集合与该标题 BACKEND DONE,新的post在服务器中 我在步骤2中添加.then()调度function,其中我派遣一个type: 'ADD_POST'并post: post (我从res.json({post: result from database}) ) 在我的reducer中,我设置了一个CASE 'ADD_POST': return action.post 完成FRONTEND后,用户现在可以看到同一个post,而不需要刷新 我想使用相同的逻辑来更新特定post的喜好 。 这是我迄今为止所做的: 点击一个post上的button会触发一个获取NodeJS PUT路由的调度 NodeJS路由查找使用ID的文章,并添加1到喜欢该post的旧值 BACKEND DONE,现在在服务器上有1个以上 我再次添加到获取NodeJS路由的调度中,在该调度中,我分配了一个type 'ADD_LIKE'的操作,并更新了更新的post ID 在reducer中,我设置了一个CASE 'ADD_LIKE':它使用下面代码片段中的代码遍历整个状态。 这是这个片段: state.map(item => { if(item.id === action.postid) { //i find the specific item, but now im stuck on how […]

在Node.js中导入React throws SyntaxError:意外的令牌导出

我试图用Node.js和React实现SSR,按照这个例子https://github.com/babel/example-node-server的build议,在官方的Babel文档中这里http://babeljs.io/docs/usage / CLI /#巴别节点 为了开发,我使用了babel-node ; 为了生产,我想用babel来传递我的服务器并运行它: 的package.json "scripts": { "start": "node ./dist/server/index.js", "dev:server": "nodemon ./src/server/index.js -x babel-node", "build:server": "babel ./src/server -d ./dist/server –copy-files -s inline" }, "babel": { "presets": [ "env", "react", "stage-2" ], "plugins": [ "transform-decorators-legacy" ] } 服务器使用ES6语法编写: SRC /服务器/ index.js import 'babel-polyfill' import './config' import Express from 'express' import bootstrap from […]

无法从React客户端向Node.js websocket服务器发送消息

我有以下代码作为服务器: var http = require('http'), cors = require('cors'), connect = require('connect'), WebSocketServer = require('ws'); var DataController = function() { this.PORT = 8090; this.startWS(); this.startServer(); } DataController.prototype = { // code to start server… getMessage: function(_message) { var that = this, message = JSON.parse(_message), msgName = message.name; console.log('new message ' + msgName); switch(msgName){ case 'start': // […]

ReactJS输出将不呈现给HTML,但在控制台日志中起作用

我有一个search框,更新this.state.chebi_results与一个JSON对象onSubmit()。 一切似乎工作,除非我尝试呈现输出到HTML。 我试图把我的输出呈现为一个无序列表。 我的控制台日志显示正是我想要的。 为什么HTML不被更新? chebiResults=()=>{ return( <div className='search_results'> <ul> {this.state.chebi_results.forEach((element)=>{ <li>{element.name}</li> console.log(element.name) })} </ul> </div> ); } render(){ return ( <div className='ontology_tool'> <div className='wraper'> <div className='search'> <div className='search_tool'> <form onSubmit={this.handleSearch}> <input type="text" name="query" value={this.state.form_query} onChange={this.setQuery}/> <input type="Submit" value="Submit" /> </form> </div> {this.chebiResults()} </div> <div className='selected'> </div> </div> </div> ); }

对于React组件,<img>中的.jpg模块parsing失败?

我想在我的网站上显示一个图像,我正在使用反应。 这里是组件源代码: import React, { Component } from 'react'; import style from './styles/AboutMeStyle.css'; export default class AboutMe extends Component{ render(){ return ( <div> <img src={require ('./images/ProfilePic.jpg')}align="middle"/> </div> ); } } 该文件似乎被发现,但我不断收到一个exception,说明模块parsing失败…? 这里是来自terminal的错误的文本输出: Module parse failed: /Users/megan/Desktop/Personal Website/client/components/images/ProfilePic.jpg Unexpected character (1:0) You may need an appropriate loader to handle this file type. SyntaxError: Unexpected character (1:0) […]

event.target.value对于包装图像而不是文本的button是未定义的

我有两个相同的button,除了里面有一个图像,另一个有文本。 我已经添加了一个onClick事件处理程序。 图像button的event.target.value是未定义的,尽pipe有一个值,文本button具有正确的值。 看这个小提琴的例子: https : //jsfiddle.net/69z2wepo/84885/ class MyComponent extends React.Component { constructor(props) { super(props); this.changeSlide = this.changeSlide.bind(this); } changeSlide(e) { e.preventDefault(); console.log('e.target.value', e.target.value); } render() { return ( <div> <button onClick={this.changeSlide} value="back"> <img src="//www.gravatar.com/avatar/7150a453468d14f599772cd8330fcf25/?default=&s=80" alt="Previous slide" /> </button> <button onClick={this.changeSlide} value="back"> CLICK ME </button> </div> ); } } ReactDOM.render( <MyComponent />, document.getElementById('container') ); 为什么会出现这种情况,在button中使用图像的正确方法是什么?

在React Redux中从package.json获取版本号

编辑:如果有其他人遇到这个,应用程序创build使用create-react-app ,它限制导入到src文件夹内,但是如果你升级react-scripts到v1.0.11它可以让你访问package.json。 我试图从我的应用程序中获取package.json的版本号。 我已经尝试了这些build议 ,但没有人工作,因为我不能从src文件夹外部访问package.json(可能是由于React,我是新来的)。 将package.json移动到src中意味着我不能运行npm install , npm version minor和npm run build从我的根文件夹npm run build 。 我已经尝试使用process.env.npm_package_version但导致未定义。 我正在使用Jenkins,我还没有设置它来推动提交,但我唯一的想法是从GitLab中的标签获取版本,但我不知道如何做到这一点,会增加不必要的依赖回购,所以我真的想find一个替代品。 编辑:我的文件结构是这样的: –> RootAppFolder |–> build |–> node_modules |–> public |–> src |–> Components |–> Root.js | |–> package.json 所以要从Root.js访问package.json,我必须import packageJson from './../../package.json' ,然后出现以下错误: ./src/components/Root.js 找不到模块:您试图导入不在src /目录下的./../../package.json文件。 src /之外的相对导入不受支持。 您可以在src /中移动它,或者从项目的node_modules /中为它添加一个符号链接。

如何pipe理多个节点项目?

我们正在使用3个不同的节点项目: 项目1 , 项目2和项目3使用react和webpack 。 所有3个项目都在3个不同的仓库中。 项目1和项目2是独立的,但项目3需要项目1和项目2的压缩文件,并作为devDependencies(node_modules)放在项目3中。 现在,我们需要在Project 1或Project 2中进行更改,以便在Project 3中使用新的zip文件。 为了debugging,我们需要更改Project 1或Project 2中的代码,然后使用npm pack一个压缩文件,然后在Project 3中更新该压缩文件并停止Project 3的生成 ,然后再次卸载并安装该压缩文件,然后运行项目3再次。 另一个更快一点,一个解决scheme是使用npm包构build项目1或项目2 ,然后复制生成的lib文件,然后将其复制到项目3运行实例中的/node_modules/Project 1(or2)/lib文件夹中。 有没有更好或更快或更方便的方法来pipe理所有这些项目? 请不要build议lerna 。 莱纳是一个伟大的工具,但它需要改变的架构是不可行的。

有没有可能使用反应/ Redux /佐贺应用程序没有后端

以前我用React / Redux / Saga作为Ruby / Rails和Nodejs后端应用程序的“performance层”。 目前有几个后端服务(我不控制),我应该使用我的React / Redux / Saga应用程序进行身份validation和获取数据。 在我的本地机器上,我可以在webpack-dev-server的帮助下运行我的React / Redux应用程序,因此它可以接收来自浏览器的请求。 但生产环境呢? 是否有可能不使用Nginx,Nodejs,Rails部署React / Redux / Saga应用程序?

响应路由与URL参数不更新视图

我有一个反应观点/wiki/:artical 。 当我从一个不同的视angular去维基(例如从/到/wiki/some-artiacal )我的观点更新,但是当我从一个维基到另一/wiki/some-artiacal (例如/wiki/some-artiacal到/wiki/some-other-artiacal )页面不会与新的内容。 看来React认为它们是相同的观点,并且不会重新渲染页面。 如果我手动刷新浏览器,文章更新,但是当我点击<Link to='/wiki/some-other-artiacal'></Link>时,我想要刷新。 反应路由器文件: import React from "react"; import ReactDOM from "react-dom"; import { BrowserRouter as Router, Route, Switch } from "react-router-dom"; // COMPONENTS import Header from './components/Header'; // VIEWS import HomePage from './views/HomePage'; import WikiPage from './views/WikiPage'; import ProblemTesterPage from './views/ProblemTesterPage'; import NoMatchPage from './views/NoMatchPage'; ReactDOM.render( <Router> <div […]