Javascript ReactJS使用jquery制作动画
我试图呈现一个组件,但该值在一个jQuery函数中,该函数检查输入字段中的更改 控制台返回此错误: 对象作为React子对象无效(找到:[object HTMLDocument])。 如果要呈现子对象集合,请改用数组 或者使用React中的createFragment(对象)包装对象 附加组件。检查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
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获取的名称请将结果组件添加到您的问题中。