Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.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 ReactJS使用jquery制作动画_Javascript_Jquery_Reactjs - Fatal编程技术网

Javascript ReactJS使用jquery制作动画

Javascript ReactJS使用jquery制作动画,javascript,jquery,reactjs,Javascript,Jquery,Reactjs,我试图呈现一个组件,但该值在一个jQuery函数中,该函数检查输入字段中的更改 控制台返回此错误: 对象作为React子对象无效(找到:[object HTMLDocument])。 如果要呈现子对象集合,请改用数组 或者使用React中的createFragment(对象)包装对象 附加组件。检查Result 守则: import React, { Component } from 'react'; import Result from './Result'; import * as $ fr

我试图呈现一个组件,但该值在一个jQuery函数中,该函数检查输入字段中的更改

控制台返回此错误:

对象作为React子对象无效(找到:[object HTMLDocument])。 如果要呈现子对象集合,请改用数组 或者使用React中的createFragment(对象)包装对象 附加组件。检查
Result

守则:

import React, { Component } from 'react';
import Result from './Result';
import * as $ from 'jquery';
import ReactFM from '../lib/ReactFM';
import { config } from '../config';

export let reactfm = new ReactFM(config.apiKey);

let name = $(() => {
  $('.input-search').keypress(() => {
    let inp = $('.input-search').val();
    return reactfm.searchArtists(inp);
  });
});

class SearchResults extends Component {
  render() {
    return (
      <div className="search-results">
        <Result avatar="" name={name} desc="um deus" />
      </div>
    );
  }
}

export default SearchResults;
import React,{Component}来自'React';
从“./Result”导入结果;
从“jquery”导入*为$;
从“../lib/ReactFM”导入ReactFM;
从“../config”导入{config};
export let reactfm=new reactfm(config.apiKey);
让name=$(()=>{
$('.input search')。按键(()=>{
让inp=$('.input search').val();
返回reactfm.searchArtists(inp);
});
});
类SearchResults扩展组件{
render(){
返回(
);
}
}
导出默认搜索结果;

当您使用React时,确实没有很好的理由使用jQuery

如果您正在(并且应该)编写包含JSX中输入元素的html作为更高级别的React组件,那么您可以通过ref属性引用输入,或者向输入本身添加一个键控事件侦听器

例如:

const HigherLevelParentComponent = React.createClass({
  getDefaultState() {
    searchQuery: ''
  },

  searchArtists(event) {
    this.setState({
      searchQuery: event.target.value
    })
  },

  render() {
    (
      <div>
        <input type="text" onKeyDown={(event) => this.searchArtists(event)}/>
        <Result ... /> // You probably want this to be a mapped array of Result components with unique props instead
      </div>
    )
  }
})
const HigherLevelParentComponent=React.createClass({
getDefaultState(){
搜索查询:“”
},
搜索艺术家(活动){
这是我的国家({
searchQuery:event.target.value
})
},
render(){
(
this.searchArtists(事件)}/>
//您可能希望这是一个映射的结果组件数组,而不是唯一的道具
)
}
})
您还需要包含一个函数,该函数搜索可搜索的数据并返回一个对象数组,然后可以使用映射和道具将这些对象渲染为结果组件。如何做到这一点将取决于可搜索数据的来源(React存储、后端的数据库表等)


另外,您提到使用jQuery制作动画,但没有详细说明。

什么是
返回reactfm.searchArtists(inp)
返回?从lastfm获取的名称请将结果组件添加到您的问题中。