Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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
Git React-tagsinput模块在React-Flux项目中的实现;我的标记功能代码中有错误?_Git_Reactjs_React Jsx_Flux_Reactjs Flux - Fatal编程技术网

Git React-tagsinput模块在React-Flux项目中的实现;我的标记功能代码中有错误?

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

我尝试了几种不同的实现(您可以看到它们被注释掉了)

一旦我启动项目,屏幕上会显示一个输入文本框,里面写着“tag1 tag2”-因为我把它们初始化为;但我不能做任何事情,因为每当我试图操纵它们(删除/空格键/添加另一个字母)时,它们都会被替换

[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有没有关于如何修复它的建议?我已经在这个问题上纠缠了一个多星期了,还没有真正了解到底出了什么问题。