reactjs new class是实现它的正确方法吗?

时间:2017-06-26 19:22:23

标签: reactjs

我有一个主要的应用程序(棋盘游戏) 打开大堂课程(显示可用的游戏) 从那里你可以打开一个游戏桌

打开一个新表我执行以下操作:

set theBatchString "5+10;"

set d [exec maxima --batch-string=$theBatchString]
puts $d

我如何将这些参数提供给这个新创建的类(有想法它不起作用;也没有抱怨!!!!)

然后为渲染我这样做:

var newTable = new GameTable(operationId, tableId, instanceId);
var {gametables} = this.state;
gametables.push(newTable);
this.setState({gametables});

但在这里我提供了#34; GameTable"这不是我创建的课程,但是当我提供" item"时它不起作用。没有游戏桌。

javascript曾经如此简单:(

1 个答案:

答案 0 :(得分:0)

const tables = this.state.gametables.map((table, i) => {
        return ({table});
    });

render方法包含JSX代码。尝试将上面的代码移动到辅助函数并从render方法中调用它。

此外,您的逻辑应该在辅助函数中,而不是在JSX中。

在类组件中放置一个辅助函数

renderTable(){
const tables = this.state.gametables.map((table, i) => {
        return ({table});
    });    
}

然后在你的jsx电话里面

{this.renderTable}

完整代码:

renderTable(){
    const tables = this.state.gametables.map((table, i) => {
            return ({table});
        });    
    }

renderView(){
    const clientLoginState = this.state.clientLoginState;
        return (
            {clientLoginState === 2 ? 
            (
                <div>
                <Lobby requestOpenTable={this.requestOpenTable}>
                </Lobby>
                {this.state.gametables.map((item, index) => (
                   <div className='table' key={index} ><GameTable sendTableMessage={this.sendTableMessage.bind(this)}/></div>
                ))}             
                </div>              
            )
            :
            (
                <Login loginState={clientLoginState} sendLogin={this.sendLogin} />
            )
            }   
        );
    }

render() {
return (
 <div style={styleApp()} onContextMenu={this.onContextMenu} >
{this.renderView}
</div>
<div>{this.renderTable}</div>
)
}