javascript - React JSX 中的函数不返回值

标签 javascript reactjs

所以我有一个模块可以呈现当月的日历。看起来像这样。

let days = {0: 'Sun', 1: 'Mon', 2: 'Tue', 3: 'Wed', 4: 'Thu', 5: 'Fri', 6: 'Sat'};
let today = new Date();
today.setDate(1);
let dayOfWeek = today.getDay();
let count = 0;

class Calender extends Component {
    constructor(props) {
        super(props);
        this.calRender = this.calRender.bind(this);
     }

    calRender(x) {Object.keys(days).map(index => {count++;
                 return <td key={x+index} style={{...styleVars.defaultTextColor, ...styleVars.blockSize, backgroundColor: '#777'}}>{count}</td>})}


    render() {



        return(
            <table>
                    <tr>
                        {Object.keys(days).map((index) => <th key={index} style={{...styleVars.defaultTextColor, ...styleVars.blockSize, backgroundColor: '#232'}}>{days[index]}</th>)}
                    </tr>
                    <tr>
                        {Object.keys(days).map(index => {
                                                if(index < dayOfWeek) {
                                                    return <td key={index} style={{...styleVars.defaultTextColor, ...styleVars.blockSize, backgroundColor: '#bbb'}}></td>}
                                                else {count++;
                                                      return <td key={index} style={{...styleVars.defaultTextColor, ...styleVars.blockSize, backgroundColor: '#777'}}>{count}</td>}
                                                })}
                    </tr>
                    <tr>
                    {this.calRender(7)}
                    </tr>
                    <tr>
                    {this.calRender(14)}
                    </tr>
                    <tr>
                    {this.calRender(21)}
                    </tr>
                    <tr>
                    {this.calRender(21)}
                    </tr>

            </table>

        )
    }
}

问题是 calRender 函数没有返回任何内容,即使它应该返回带有日期的标签。当我在没有函数的情况下执行此操作(通过为每个标签编写映射语句)时,它工作正常。请指出我哪里搞砸了。

最佳答案

您的calRender方法不会返回任何内容。您在 map 函数的回调中确实有一个return语句,但这还不够。

通过添加 return 语句来修复它:

calRender(x) {
    return Object.keys(days).map(index => {
        count++;
        return <td key={x+index} style={{...styleVars.defaultTextColor, ...styleVars.blockSize, backgroundColor: '#777'}}>{count}</td>};
    );
}

关于javascript - React JSX 中的函数不返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50895457/

相关文章:

javascript - "Type ' { child : Element[]; pictureUrl: string; } ' is not assignable to type ' IntrinsicAttributes & { children? : react 节点; }'

java - Ajax 请求不适用于 Spring Controller

jquery - <li> 的条件 float

javascript - 在 React Form 无状态组件和全状态 Root 组件之间传递多个输入字段

javascript - Bootstrap.min.js 的 src 不工作

javascript - React 中的 SVG 操作

reactjs - React 测试库返回多个元素时如何选择特定元素?

javascript - 使用 jquery 显示子元素的悬停元素

javascript - Angularjs - 根据单击的项目更改状态

javascript - 动态添加属性作为对象属性