Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在React中执行函数?_Javascript_Jquery_Html_Reactjs - Fatal编程技术网

Javascript 如何在React中执行函数?

Javascript 如何在React中执行函数?,javascript,jquery,html,reactjs,Javascript,Jquery,Html,Reactjs,我是React的初学者,有人能帮我吗 我写了这个函数: import React, { Component } from 'react'; import './Grid.css'; import test from "../product.json"; import $ from 'jquery'; class Grid extends Component { makeGrid = () =>{ var data = test.map( x => [ x.name,

我是React的初学者,有人能帮我吗 我写了这个函数:

import React, {
Component }
from 'react';
import './Grid.css';
import test from "../product.json";
import $ from 'jquery';


class Grid extends Component {

makeGrid = () =>{

    var data = test.map( x => [ x.name, x.price, ] );

    $( document ).ready(function() {
    console.log( "ready!" );
    $('.boxes').append('<div className = "boxi"> Success </div>')

    });
import-React{
组件}
从"反应",;
导入“/Grid.css”;
从“./product.json”导入测试;
从“jquery”导入美元;
类网格扩展组件{
makeGrid=()=>{
var data=test.map(x=>[x.name,x.price,]);
$(文档).ready(函数(){
console.log(“准备就绪!”);
$('.box').append('Success'))
});
我想执行此函数,因此我尝试:

render() {


    return (
        <div className = "Grid" >
        < section className = "boxes" >

        < /section> < /div > );

        <h2> {this.makeGrid}</h2>

 }
}

export default Grid;
render(){
返回(
); {this.makeGrid} } } 导出默认网格; 但是,即使console.log不工作,也不会发生任何事情。
有人能帮我吗。

我注意到两个问题。这不是一个反应。这是一个javaScript。
这个。makeGrid
调用函数定义,但它不执行。要执行它,需要开始和结束括号。所以基本上

makeGrid = () =>{

}

这可能是正确的做法

更新

将方法执行移动到react的
componentDidMount
Lifecycle。因此添加此项

componentDidMount() {
  this.makeGrid()
}

从render方法中删除
{this.makeGrid()}
。研究
componentDidMount
您不需要在render中那样调用您的方法。您不应该这样做。

这里有一个解决方案

import React,{Component}来自'React';
导入“/Grid.css”;
从“./product.json”导入测试;
从“jquery”导入美元;
类网格扩展组件{
建造师(道具){
this.makeGrid=this.makeGrid.bind(this);
}
makeGrid=()=>{
var data=test.map(x=>[x.name,x.price,]);
console.log(“准备就绪!”);
$('.box').append('Success'))
}
render(){
返回(
{this.makeGrid()} ); } }
导出默认网格;
@MrabetIheb我注意到你的函数没有返回任何内容。你还希望渲染什么?我希望在控制台中打印就绪,并渲染
成功
,这样它就可以渲染了Success@MrabetIheb如果是这样的话,那你就做错了。打电话到这里来。阅读相关内容,然后请从你的邮箱中删除该电话render方法。/将h2移动到函数中。添加内容的方式不是React方式。不要使用jQuery直接操作DOM,请在React中正确操作。
<h2> {this.makeGrid()}</h2>
 <h2> {this.makeGrid.bind(this)}</h2>
componentDidMount() {
  this.makeGrid()
}