想把从服务器获取的字符串数据变成html请用dangerouslySetInnerHTML,模板如下:

render () {
    const html = "内容a前面部分<br />内容a后面部分"
    return(
        <div dangerouslySetInnerHTML={{__html: html}}>
           //里面不能放东西
        </div>

my.cmd

chcp 65001
ipconfig > C:\cmdInfo.txt
cd C://
PowerShell -Command "& {get-content cmdInfo.txt | set-content cmdInfoUtf8.txt -encoding utf8}"

index.tsx

import React from 'react';
const fs = require('fs');
const path = require('path');
// 仅在 Windows 上。
const { spawn } = require('child_process');
//读取存储在当前目录下的cmd文件
const url = path.join(__dirname, 'components/Cmd/my.cmd');
//读取强制存储在C盘的txt文件目录
const urlInfo = 'C:\\cmdInfoUtf8.txt';
class Index extends React.Component<any, any> {
  constructor(props: any) {
    super(props);
    this.state = {
      info: {
      	ipconfig:'',
        txt: ''
   * cmd方法是基于Node子进程spawn构建,主要是用于调用my.cmd文件,获得一个存储控制台信息的txt,再读取txt内容返回给State,详细看下面的my.cmd文件
  cmd = () => {
    const ls = spawn(url, []);
    ls.stdout.on('data', (data: any) => {
      console.log(data.toString());
      this.setState({
        info: {
          ...this.state.info,
          ipconfig: this.state.info.ipconfig += data.toString()
      });
    });
    ls.on('close', (code: number) => {
      console.log(`子进程退出,使用退出码 ${code}`);
    });
   * readTxt方法是基于Node fs.readFile()构建,主要是用于获取读取本地txt文件,返回给UI
  readTxt = () => {
    fs.readFile(urlInfo, { encoding: 'utf8' }, (err: any, dirent: Buffer) => {
      if (err) {
        console.log(err);
      this.setState({
        info: {
          ...this.state.info,
           //这里是以正则保证换行
          txt: dirent.toString().replace(/\r\n/g,"<br />")// 这里是重点
      });
      console.log(this.state.info.txt)
    });
  //这里要在componentDidMount调用方法,不能在render中调用,不然会无限循环渲染,实测用ReactHooks不行,
  //所以才用了原生的React.Component
  componentDidMount() {
    this.cmd();
    this.readTxt()
  render() {
    const { info } = this.state;
    return (
    	{/*在React中设置dangerouslySetInnerHTML,保证<br/>起作用*/}
       <div dangerouslySetInnerHTML={{__html:info.txt}}>//实现换行功能
       </div>
export default Index;

参考:https://segmentfault.com/q/1010000007228213
官方解释:https://reactjs.org/docs/dom-elements.html

想把从服务器获取的字符串数据变成html请用dangerouslySetInnerHTML,模板如下:render () { const html = "内容a前面部分&lt;br /&gt;内容a后面部分" return( &lt;div dangerouslySetInnerHTML={{__html: html}}&gt; //里面不能放东西 &lt;/div&gt; ) }官方解释:https://reactjs 事件驱动的库,用于使用子进程。 该库将与集成。 已启动的子进程可能会发出信号,并在终止时发出exit事件。 另外,进程I / O流(即STDIN,STDOUT,STDERR)作为公开。 快速入门示例 $ loop = React \ EventLoop \ Factory :: create (); $ process = new React \ ChildProcess \ Process ( 'echo foo' ); $ process -> start ( $ loop ); $ process -> stdout -> on ( 'data' , function ( $ chunk ) { echo $ chunk ; $ process -> on ( 'exit' , function ( $ exitCode , $ 和所有其它JavaScript模块不同的是,fs模块同时提供了异步和同步的方法。 回顾一下什么是异步方法。因为JavaScript的单线程模型,执IO操作时,JavaScript代码无需等待,而是传入回调函数后,继续执后续JavaScript代码。比如jQuery提供的getJSON()操作: $.getJSON('http... 为什么使用jsx而不是js 创建虚拟DOM时,jsx可以直接写标签,而js只能用React.creatElement(),当有标签嵌套时,js将一直嵌套,非常复杂。jsx相当于js语法糖。 JSX语法 1. 虚拟DOM 创建虚拟DOM时,直接使用html标签而不是字符串,不能.
require(“child_process”).exec执报错 路径有空格会导致执报错,因为路径有空格,exec会认为这是两个命令,解决方法 path = '\"'+path+ '\"' // 上转义引号 exec(`${path}`,{encoding:'GBK'},(error, stdout, stderr) => { console.log(error, stdout, stderr); if (error) { return; } else
react+electron项目,在使用nodefs时,报错fs.XXX is not a function electron 在引入fs时,要在require前window. 就可以了 var fs = window.require('fs'); 3.输入命令:①npm i -g create-react-app 回车 ②create-react-app 回车 ③create-react-app demo 回车(demo为项目名称,可任意取) ④cd demo 回车 ⑤npm start 回车即安装成功。 如果报错,例如: events.js:174 thr... const { exec } = require('child_process'); const path = require('path') const url = path.join(__dirname,'components/Cmd/my.bat') console.log(url) exec(url,(err:any,stdout:any,stderr:any)=>{ 一把年纪了,现在还要来学react开发,没办法,为了温饱问题,学吧!活到老,学到老,这也是真理! 毕竟会Vue了,就算开发React,也不会那么难,看了一下官方文档,当天就开始开发项目了,泪奔! 然后就遇到问题了,然后就跳到坑里了也不知道怎么回事,哎,前端早点大一统吧,搞这么多框架干啥,信了你的邪! 说说遇到的这个坑吧,在react项目里面,由于遇到了问题,想再组件的js文件里面个debugger语句调试一下,结果一保存,控制台满屏红色错误,如下: 一开始还以为
创建子进程的几种方式 1、child_process.exec(command[, options][, callback]) 2、child_process.execFile(file[, args][, options][, callback]) 3、child_process.fork(modulePath[, args][, options]) 4、child_process.spawn(...
1、问题背景     利用readFile方法读取HTML文件,并输出文件内容2、实现源码E:\>cd E:\Program Files\nodejs E:\Program Files\nodejs>node app.js <Buffer 3c 21 64 6f 63 74 79 70 65 20 68 74 6d 6c 3e 0d 0a 3c 68 74 6d 6c 20 6c 61 6e 6
个人遇坑全面整理!npm install 报错没有匹配版本:npm ERR! code ETARGET npm ERR! notarget No matching version found for 71285 个人遇坑全面整理!npm install 报错没有匹配版本:npm ERR! code ETARGET npm ERR! notarget No matching version found for 指尖弦念: 哈哈尴尬了 Vue中子组件修改父组件的值(使用v-model优化,所有自定义组件可用v-model) 精辟啊,写得好 个人遇坑全面整理!npm install 报错没有匹配版本:npm ERR! code ETARGET npm ERR! notarget No matching version found for 个人遇坑全面整理!npm install 报错没有匹配版本:npm ERR! code ETARGET npm ERR! notarget No matching version found for 冉儿囡plus: 一点都不阔以 node 控制台中文乱码 zhuhouyu: 在哪个目录下啊