Git React-tagsinput模块在React-Flux项目中的实现;我的标记功能代码中有错误?
我尝试了几种不同的实现(您可以看到它们被注释掉了) 一旦我启动项目,屏幕上会显示一个输入文本框,里面写着“tag1 tag2”-因为我把它们初始化为;但我不能做任何事情,因为每当我试图操纵它们(删除/空格键/添加另一个字母)时,它们都会被替换Git React-tagsinput模块在React-Flux项目中的实现;我的标记功能代码中有错误?,git,reactjs,react-jsx,flux,reactjs-flux,Git,Reactjs,React Jsx,Flux,Reactjs Flux,我尝试了几种不同的实现(您可以看到它们被注释掉了) 一旦我启动项目,屏幕上会显示一个输入文本框,里面写着“tag1 tag2”-因为我把它们初始化为;但我不能做任何事情,因为每当我试图操纵它们(删除/空格键/添加另一个字母)时,它们都会被替换 [object Object] 在文本字段中,然后我仍然不能做任何事情,除了用箭头键返回它;但如果我尝试其他操作,它会将光标推回到前面 我尝试了一些变化,如: TagsCom.React.createElement(“text”,null,…)或 Ta
[object Object]
在文本字段中,然后我仍然不能做任何事情,除了用箭头键返回它;但如果我尝试其他操作,它会将光标推回到前面
我尝试了一些变化,如:
TagsCom.React.createElement(“text”,null,…)或 TagsCom.createElement(“文本”,null,…)
甚至只是用TagsInput替换TagsCom,但到目前为止,唯一一行远程工作的代码是:
<TagsInput value={this.state.tags} onChange={this.handleChange} />
虽然这解决了对象问题,但它仍然是静态文本,不像标签那样工作
以下是我更新的组件代码:
var React = require('react');
var ReactDOM = require('react-dom');
var TagsInput1 = require('react-tagsinput');
var TagsCom = require('./react-tagsinput.js');
//var TagsCSS = require('react-tagsinput/react-tagsinput.css');
var TagsComponent = React.createClass
({
displayName : "TagsComponent",
getInitialState: function()
{
return {
tags: ["tag1", "tag2"]
};
},
saveTags: function (){
console.log("tags: ", this.state.tags.join(", "));
},
handleChange: function(event){
this.setState({tags: event.target.value});
},
render: function ()
{
<TagsInput value={this.state.tags} onChange={this.handleChange} />
}
});
module.exports = TagsComponent;
var React=require('React');
var ReactDOM=require('react-dom');
var TagsInput1=require('react-tagsinput');
var TagsCom=require('./react tagsinput.js');
//var TagsCSS=require('react-tagsinput/react-tagsinput.css');
var TagsComponent=React.createClass
({
displayName:“标记组件”,
getInitialState:函数()
{
返回{
标签:[“tag1”、“tag2”]
};
},
saveTags:function(){
log(“tags:”,this.state.tags.join(“,”);
},
handleChange:函数(事件){
this.setState({tags:event.target.value});
},
渲染:函数()
{
}
});
module.exports=标记组件;
这里是react标记输入模块的git链接,该模块包含所有其他文件,
输入标记的onChange
回调有一个事件
的参数,而不是您所期望的值
应该是这样的,
handleChange: function(event){
this.setState({tags: event.target.value});
},
经过多次尝试和错误,我找到了正确的渲染函数-它将TagsInput重命名为ReactTagsInput,并将onChange参数保留为“value”:
var React = require('react');
var ReactDOM = require('react-dom');
var ReactTagsInput = require('./react-tagsinput.js');
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.0/react-with-addons.js"></script>
tags:[];
var TagsComponent = React.createClass({
displayName: "TagsComponent",
getInitialState: function() {
return {
tags: ["tag1", "tag2"]
};
},
saveTags: function () {
console.log("tags: ", this.state.tags.join(", "));
},
handleChange: function(value){
this.setState({tags: value});
},
render: function () {
return
<div>
<ReactTagsInput value={this.state.tags} onChange={this.handleChange}/>
</div>;
}
});
module.exports = TagsComponent;
var React=require('React');
var ReactDOM=require('react-dom');
var reactagsinput=require('./react tagsinput.js');
标签:[];
var TagsComponent=React.createClass({
displayName:“标记组件”,
getInitialState:函数(){
返回{
标签:[“tag1”、“tag2”]
};
},
saveTags:function(){
log(“tags:”,this.state.tags.join(“,”);
},
handleChange:函数(值){
this.setState({tags:value});
},
渲染:函数(){
返回
;
}
});
module.exports=标记组件;
@gravityplax谢谢!这解决了[object]问题,现在所有类型的文本都在更改值参数:)唯一的问题是它仍然不是标记,只是作为文本输入;我是否应该为标记数组包含一个列表存储并在其上推送新标记?或者我遗漏了什么?现在您正在呈现文本输入。除非你把它变成别的东西,否则它不会变成别的东西。如果你想使用那个外部组件,你必须把它包括进去。我不知道你的意思是什么?它应该已经引用了react-tagsinput.js,所以你的意思是它不是?它绝对不是。注释掉的代码更接近于使用当前活动代码class=“react tagsinput”
没有任何作用。@gravityplax有没有关于如何修复它的建议?我已经在这个问题上纠缠了一个多星期了,还没有真正了解到底出了什么问题。